@@ -801,9 +801,8 @@ define i32 @test45_commuted3(i32 %x, i32 %y, i32 %z) {
801
801
802
802
define i32 @test45a (i32 %x , i32 %y , i32 %z ) {
803
803
; CHECK-LABEL: @test45a(
804
- ; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[Y:%.*]], [[Z:%.*]]
805
- ; CHECK-NEXT: [[AND:%.*]] = and i32 [[XOR]], [[X:%.*]]
806
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[AND]], [[Y]]
804
+ ; CHECK-NEXT: [[TMP1:%.*]] = and i32 [[X:%.*]], [[Z:%.*]]
805
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[TMP1]], [[Y:%.*]]
807
806
; CHECK-NEXT: ret i32 [[OR]]
808
807
;
809
808
%xor = xor i32 %y , %z
@@ -815,9 +814,8 @@ define i32 @test45a(i32 %x, i32 %y, i32 %z) {
815
814
define i32 @test45a_commuted1 (i32 %x , i32 %y , i32 %z ) {
816
815
; CHECK-LABEL: @test45a_commuted1(
817
816
; CHECK-NEXT: [[YY:%.*]] = mul i32 [[Y:%.*]], [[Y]]
818
- ; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[YY]], [[Z:%.*]]
819
- ; CHECK-NEXT: [[AND:%.*]] = and i32 [[XOR]], [[X:%.*]]
820
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[YY]], [[AND]]
817
+ ; CHECK-NEXT: [[TMP1:%.*]] = and i32 [[X:%.*]], [[Z:%.*]]
818
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[YY]], [[TMP1]]
821
819
; CHECK-NEXT: ret i32 [[OR]]
822
820
;
823
821
%yy = mul i32 %y , %y ; thwart complexity-based ordering
@@ -831,9 +829,8 @@ define i32 @test45a_commuted2(i32 %x, i32 %y, i32 %z) {
831
829
; CHECK-LABEL: @test45a_commuted2(
832
830
; CHECK-NEXT: [[YY:%.*]] = mul i32 [[Y:%.*]], [[Y]]
833
831
; CHECK-NEXT: [[XX:%.*]] = mul i32 [[X:%.*]], [[X]]
834
- ; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[YY]], [[Z:%.*]]
835
- ; CHECK-NEXT: [[AND:%.*]] = and i32 [[XX]], [[XOR]]
836
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[AND]], [[YY]]
832
+ ; CHECK-NEXT: [[TMP1:%.*]] = and i32 [[XX]], [[Z:%.*]]
833
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[YY]], [[TMP1]]
837
834
; CHECK-NEXT: ret i32 [[OR]]
838
835
;
839
836
%yy = mul i32 %y , %y ; thwart complexity-based ordering
@@ -848,9 +845,8 @@ define i32 @test45a_commuted3(i32 %x, i32 %y, i32 %z) {
848
845
; CHECK-LABEL: @test45a_commuted3(
849
846
; CHECK-NEXT: [[YY:%.*]] = mul i32 [[Y:%.*]], [[Y]]
850
847
; CHECK-NEXT: [[ZZ:%.*]] = mul i32 [[Z:%.*]], [[Z]]
851
- ; CHECK-NEXT: [[XOR:%.*]] = xor i32 [[ZZ]], [[YY]]
852
- ; CHECK-NEXT: [[AND:%.*]] = and i32 [[XOR]], [[X:%.*]]
853
- ; CHECK-NEXT: [[OR:%.*]] = or i32 [[AND]], [[YY]]
848
+ ; CHECK-NEXT: [[TMP1:%.*]] = and i32 [[ZZ]], [[X:%.*]]
849
+ ; CHECK-NEXT: [[OR:%.*]] = or i32 [[YY]], [[TMP1]]
854
850
; CHECK-NEXT: ret i32 [[OR]]
855
851
;
856
852
%yy = mul i32 %y , %y ; thwart complexity-based ordering
0 commit comments