@@ -628,26 +628,30 @@ define i1 @or_and2(i1 %a, i1 %b, i1 %c) {
628
628
ret i1 %r
629
629
}
630
630
631
- define i1 @or_and1_commuted (i1 %a , i1 %b , i1 %c ) {
631
+ define i1 @or_and1_commuted (i1 %a , i1 %b ) {
632
632
; CHECK-LABEL: @or_and1_commuted(
633
+ ; CHECK-NEXT: [[C:%.*]] = call i1 @gen_i1()
633
634
; CHECK-NEXT: [[NOTB:%.*]] = xor i1 [[B:%.*]], true
634
- ; CHECK-NEXT: [[COND:%.*]] = and i1 [[NOTB ]], [[C:%.* ]]
635
+ ; CHECK-NEXT: [[COND:%.*]] = and i1 [[C ]], [[NOTB ]]
635
636
; CHECK-NEXT: [[R:%.*]] = select i1 [[COND]], i1 [[A:%.*]], i1 [[B]]
636
637
; CHECK-NEXT: ret i1 [[R]]
637
638
;
639
+ %c = call i1 @gen_i1 ()
638
640
%notb = xor i1 %b , true
639
641
%cond = and i1 %c , %notb
640
642
%r = select i1 %cond , i1 %a , i1 %b
641
643
ret i1 %r
642
644
}
643
645
644
- define i1 @or_and2_commuted (i1 %a , i1 % b , i1 %c ) {
646
+ define i1 @or_and2_commuted (i1 %b , i1 %c ) {
645
647
; CHECK-LABEL: @or_and2_commuted(
648
+ ; CHECK-NEXT: [[A:%.*]] = call i1 @gen_i1()
646
649
; CHECK-NEXT: [[NOTC:%.*]] = xor i1 [[C:%.*]], true
647
- ; CHECK-NEXT: [[COND:%.*]] = or i1 [[NOTC ]], [[A:%.* ]]
650
+ ; CHECK-NEXT: [[COND:%.*]] = or i1 [[A ]], [[NOTC ]]
648
651
; CHECK-NEXT: [[R:%.*]] = select i1 [[COND]], i1 [[A]], i1 [[B:%.*]]
649
652
; CHECK-NEXT: ret i1 [[R]]
650
653
;
654
+ %a = call i1 @gen_i1 ()
651
655
%notc = xor i1 %c , true
652
656
%cond = or i1 %a , %notc
653
657
%r = select i1 %cond , i1 %a , i1 %b
@@ -684,32 +688,28 @@ define i1 @or_and2_multiuse(i1 %a, i1 %b, i1 %c) {
684
688
ret i1 %r
685
689
}
686
690
687
- define <2 x i1 > @or_and1_vec (<2 x i1 > %a , <2 x i1 > %b ) {
691
+ define <2 x i1 > @or_and1_vec (<2 x i1 > %a , <2 x i1 > %b , < 2 x i1 > %c ) {
688
692
; CHECK-LABEL: @or_and1_vec(
689
- ; CHECK-NEXT: [[C:%.*]] = call <2 x i1> @gen_v2i1()
690
693
; CHECK-NEXT: [[NOTB:%.*]] = xor <2 x i1> [[B:%.*]], <i1 true, i1 true>
691
- ; CHECK-NEXT: [[COND:%.*]] = and <2 x i1> [[C ]], [[NOTB ]]
694
+ ; CHECK-NEXT: [[COND:%.*]] = and <2 x i1> [[NOTB ]], [[C:%.* ]]
692
695
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A:%.*]], <2 x i1> [[B]]
693
696
; CHECK-NEXT: ret <2 x i1> [[R]]
694
697
;
695
- %c = call <2 x i1 > @gen_v2i1 ()
696
698
%notb = xor <2 x i1 > %b , <i1 true , i1 true >
697
- %cond = and <2 x i1 > %c , %notb
699
+ %cond = and <2 x i1 > %notb , %c
698
700
%r = select <2 x i1 > %cond , <2 x i1 > %a , <2 x i1 > %b
699
701
ret <2 x i1 > %r
700
702
}
701
703
702
- define <2 x i1 > @or_and2_vec (<2 x i1 > %a , <2 x i1 > %b ) {
704
+ define <2 x i1 > @or_and2_vec (<2 x i1 > %a , <2 x i1 > %b , < 2 x i1 > %c ) {
703
705
; CHECK-LABEL: @or_and2_vec(
704
- ; CHECK-NEXT: [[C:%.*]] = call <2 x i1> @gen_v2i1()
705
- ; CHECK-NEXT: [[NOTC:%.*]] = xor <2 x i1> [[C]], <i1 true, i1 true>
706
+ ; CHECK-NEXT: [[NOTC:%.*]] = xor <2 x i1> [[C:%.*]], <i1 true, i1 true>
706
707
; CHECK-NEXT: [[COND:%.*]] = or <2 x i1> [[NOTC]], [[A:%.*]]
707
708
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A]], <2 x i1> [[B:%.*]]
708
709
; CHECK-NEXT: ret <2 x i1> [[R]]
709
710
;
710
- %c = call <2 x i1 > @gen_v2i1 ()
711
711
%notc = xor <2 x i1 > %c , <i1 true , i1 true >
712
- %cond = or <2 x i1 > %a , %notc
712
+ %cond = or <2 x i1 > %notc , %a
713
713
%r = select <2 x i1 > %cond , <2 x i1 > %a , <2 x i1 > %b
714
714
ret <2 x i1 > %r
715
715
}
@@ -724,22 +724,22 @@ define <2 x i1> @or_and1_vec_commuted(<2 x i1> %a, <2 x i1> %b) {
724
724
;
725
725
%c = call <2 x i1 > @gen_v2i1 ()
726
726
%notb = xor <2 x i1 > %b , <i1 true , i1 true >
727
- %cond = and <2 x i1 > %notb , %c
727
+ %cond = and <2 x i1 > %c , %notb
728
728
%r = select <2 x i1 > %cond , <2 x i1 > %a , <2 x i1 > %b
729
729
ret <2 x i1 > %r
730
730
}
731
731
732
- define <2 x i1 > @or_and2_vec_commuted (<2 x i1 > %a , <2 x i1 > %b ) {
732
+ define <2 x i1 > @or_and2_vec_commuted (<2 x i1 > %b , <2 x i1 > %c ) {
733
733
; CHECK-LABEL: @or_and2_vec_commuted(
734
- ; CHECK-NEXT: [[C :%.*]] = call <2 x i1> @gen_v2i1()
735
- ; CHECK-NEXT: [[NOTC:%.*]] = xor <2 x i1> [[C]], <i1 true, i1 true>
736
- ; CHECK-NEXT: [[COND:%.*]] = or <2 x i1> [[NOTC ]], [[A:%.* ]]
734
+ ; CHECK-NEXT: [[A :%.*]] = call <2 x i1> @gen_v2i1()
735
+ ; CHECK-NEXT: [[NOTC:%.*]] = xor <2 x i1> [[C:%.* ]], <i1 true, i1 true>
736
+ ; CHECK-NEXT: [[COND:%.*]] = or <2 x i1> [[A ]], [[NOTC ]]
737
737
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A]], <2 x i1> [[B:%.*]]
738
738
; CHECK-NEXT: ret <2 x i1> [[R]]
739
739
;
740
- %c = call <2 x i1 > @gen_v2i1 ()
740
+ %a = call <2 x i1 > @gen_v2i1 ()
741
741
%notc = xor <2 x i1 > %c , <i1 true , i1 true >
742
- %cond = or <2 x i1 > %notc , %a
742
+ %cond = or <2 x i1 > %a , %notc
743
743
%r = select <2 x i1 > %cond , <2 x i1 > %a , <2 x i1 > %b
744
744
ret <2 x i1 > %r
745
745
}
0 commit comments