Skip to content

Commit 5f9b4bc

Browse files
committed
[InstCombine] Fix commuted tests (NFC)
Make sure complexity-based canonicalization doesn't get in the way.
1 parent 125abbd commit 5f9b4bc

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

llvm/test/Transforms/InstCombine/select-and-or.ll

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -628,26 +628,30 @@ define i1 @or_and2(i1 %a, i1 %b, i1 %c) {
628628
ret i1 %r
629629
}
630630

631-
define i1 @or_and1_commuted(i1 %a, i1 %b, i1 %c) {
631+
define i1 @or_and1_commuted(i1 %a, i1 %b) {
632632
; CHECK-LABEL: @or_and1_commuted(
633+
; CHECK-NEXT: [[C:%.*]] = call i1 @gen_i1()
633634
; CHECK-NEXT: [[NOTB:%.*]] = xor i1 [[B:%.*]], true
634-
; CHECK-NEXT: [[COND:%.*]] = and i1 [[NOTB]], [[C:%.*]]
635+
; CHECK-NEXT: [[COND:%.*]] = and i1 [[C]], [[NOTB]]
635636
; CHECK-NEXT: [[R:%.*]] = select i1 [[COND]], i1 [[A:%.*]], i1 [[B]]
636637
; CHECK-NEXT: ret i1 [[R]]
637638
;
639+
%c = call i1 @gen_i1()
638640
%notb = xor i1 %b, true
639641
%cond = and i1 %c, %notb
640642
%r = select i1 %cond, i1 %a, i1 %b
641643
ret i1 %r
642644
}
643645

644-
define i1 @or_and2_commuted(i1 %a, i1 %b, i1 %c) {
646+
define i1 @or_and2_commuted(i1 %b, i1 %c) {
645647
; CHECK-LABEL: @or_and2_commuted(
648+
; CHECK-NEXT: [[A:%.*]] = call i1 @gen_i1()
646649
; CHECK-NEXT: [[NOTC:%.*]] = xor i1 [[C:%.*]], true
647-
; CHECK-NEXT: [[COND:%.*]] = or i1 [[NOTC]], [[A:%.*]]
650+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[A]], [[NOTC]]
648651
; CHECK-NEXT: [[R:%.*]] = select i1 [[COND]], i1 [[A]], i1 [[B:%.*]]
649652
; CHECK-NEXT: ret i1 [[R]]
650653
;
654+
%a = call i1 @gen_i1()
651655
%notc = xor i1 %c, true
652656
%cond = or i1 %a, %notc
653657
%r = select i1 %cond, i1 %a, i1 %b
@@ -684,32 +688,28 @@ define i1 @or_and2_multiuse(i1 %a, i1 %b, i1 %c) {
684688
ret i1 %r
685689
}
686690

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) {
688692
; CHECK-LABEL: @or_and1_vec(
689-
; CHECK-NEXT: [[C:%.*]] = call <2 x i1> @gen_v2i1()
690693
; 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:%.*]]
692695
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A:%.*]], <2 x i1> [[B]]
693696
; CHECK-NEXT: ret <2 x i1> [[R]]
694697
;
695-
%c = call <2 x i1> @gen_v2i1()
696698
%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
698700
%r = select <2 x i1> %cond, <2 x i1> %a, <2 x i1> %b
699701
ret <2 x i1> %r
700702
}
701703

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) {
703705
; 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>
706707
; CHECK-NEXT: [[COND:%.*]] = or <2 x i1> [[NOTC]], [[A:%.*]]
707708
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A]], <2 x i1> [[B:%.*]]
708709
; CHECK-NEXT: ret <2 x i1> [[R]]
709710
;
710-
%c = call <2 x i1> @gen_v2i1()
711711
%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
713713
%r = select <2 x i1> %cond, <2 x i1> %a, <2 x i1> %b
714714
ret <2 x i1> %r
715715
}
@@ -724,22 +724,22 @@ define <2 x i1> @or_and1_vec_commuted(<2 x i1> %a, <2 x i1> %b) {
724724
;
725725
%c = call <2 x i1> @gen_v2i1()
726726
%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
728728
%r = select <2 x i1> %cond, <2 x i1> %a, <2 x i1> %b
729729
ret <2 x i1> %r
730730
}
731731

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) {
733733
; 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]]
737737
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[COND]], <2 x i1> [[A]], <2 x i1> [[B:%.*]]
738738
; CHECK-NEXT: ret <2 x i1> [[R]]
739739
;
740-
%c = call <2 x i1> @gen_v2i1()
740+
%a = call <2 x i1> @gen_v2i1()
741741
%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
743743
%r = select <2 x i1> %cond, <2 x i1> %a, <2 x i1> %b
744744
ret <2 x i1> %r
745745
}

0 commit comments

Comments
 (0)