Skip to content

Commit 31ea022

Browse files
committed
[InstCombine][NFC] Precommit tests for PR75784
1 parent b8df88b commit 31ea022

File tree

1 file changed

+224
-24
lines changed

1 file changed

+224
-24
lines changed

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

Lines changed: 224 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -613,9 +613,9 @@ define i1 @and_or2_wrong_operand(i1 %a, i1 %b, i1 %c, i1 %d) {
613613

614614
define i1 @and_or3(i1 %a, i1 %b, i32 %x, i32 %y) {
615615
; CHECK-LABEL: @and_or3(
616-
; CHECK-NEXT: [[C:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
617-
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[C]], i1 true, i1 [[A:%.*]]
618-
; CHECK-NEXT: [[R:%.*]] = select i1 [[B:%.*]], i1 [[TMP1]], i1 false
616+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
617+
; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i1 true, i1 [[A:%.*]]
618+
; CHECK-NEXT: [[R:%.*]] = select i1 [[B:%.*]], i1 [[TMP2]], i1 false
619619
; CHECK-NEXT: ret i1 [[R]]
620620
;
621621
%c = icmp eq i32 %x, %y
@@ -626,9 +626,9 @@ define i1 @and_or3(i1 %a, i1 %b, i32 %x, i32 %y) {
626626

627627
define i1 @and_or3_commuted(i1 %a, i1 %b, i32 %x, i32 %y) {
628628
; CHECK-LABEL: @and_or3_commuted(
629-
; CHECK-NEXT: [[C:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
630-
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[C]], i1 true, i1 [[A:%.*]]
631-
; CHECK-NEXT: [[R:%.*]] = select i1 [[B:%.*]], i1 [[TMP1]], i1 false
629+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
630+
; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i1 true, i1 [[A:%.*]]
631+
; CHECK-NEXT: [[R:%.*]] = select i1 [[B:%.*]], i1 [[TMP2]], i1 false
632632
; CHECK-NEXT: ret i1 [[R]]
633633
;
634634
%c = icmp eq i32 %x, %y
@@ -665,9 +665,9 @@ define i1 @and_or3_multiuse(i1 %a, i1 %b, i32 %x, i32 %y) {
665665

666666
define <2 x i1> @and_or3_vec(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %y) {
667667
; CHECK-LABEL: @and_or3_vec(
668-
; CHECK-NEXT: [[C:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
669-
; CHECK-NEXT: [[TMP1:%.*]] = select <2 x i1> [[C]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[A:%.*]]
670-
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[TMP1]], <2 x i1> zeroinitializer
668+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
669+
; CHECK-NEXT: [[TMP2:%.*]] = select <2 x i1> [[TMP1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[A:%.*]]
670+
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[TMP2]], <2 x i1> zeroinitializer
671671
; CHECK-NEXT: ret <2 x i1> [[R]]
672672
;
673673
%c = icmp eq <2 x i32> %x, %y
@@ -678,9 +678,9 @@ define <2 x i1> @and_or3_vec(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %
678678

679679
define <2 x i1> @and_or3_vec_commuted(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %y) {
680680
; CHECK-LABEL: @and_or3_vec_commuted(
681-
; CHECK-NEXT: [[C:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
682-
; CHECK-NEXT: [[TMP1:%.*]] = select <2 x i1> [[C]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[A:%.*]]
683-
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[TMP1]], <2 x i1> zeroinitializer
681+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
682+
; CHECK-NEXT: [[TMP2:%.*]] = select <2 x i1> [[TMP1]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[A:%.*]]
683+
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[B:%.*]], <2 x i1> [[TMP2]], <2 x i1> zeroinitializer
684684
; CHECK-NEXT: ret <2 x i1> [[R]]
685685
;
686686
%c = icmp eq <2 x i32> %x, %y
@@ -877,9 +877,9 @@ entry:
877877

878878
define i1 @or_and3(i1 %a, i1 %b, i32 %x, i32 %y) {
879879
; CHECK-LABEL: @or_and3(
880-
; CHECK-NEXT: [[C:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
881-
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[C]], i1 [[B:%.*]], i1 false
882-
; CHECK-NEXT: [[R:%.*]] = select i1 [[A:%.*]], i1 true, i1 [[TMP1]]
880+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
881+
; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i1 [[B:%.*]], i1 false
882+
; CHECK-NEXT: [[R:%.*]] = select i1 [[A:%.*]], i1 true, i1 [[TMP2]]
883883
; CHECK-NEXT: ret i1 [[R]]
884884
;
885885
%c = icmp eq i32 %x, %y
@@ -890,9 +890,9 @@ define i1 @or_and3(i1 %a, i1 %b, i32 %x, i32 %y) {
890890

891891
define i1 @or_and3_commuted(i1 %a, i1 %b, i32 %x, i32 %y) {
892892
; CHECK-LABEL: @or_and3_commuted(
893-
; CHECK-NEXT: [[C:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
894-
; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[C]], i1 [[B:%.*]], i1 false
895-
; CHECK-NEXT: [[R:%.*]] = select i1 [[A:%.*]], i1 true, i1 [[TMP1]]
893+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], [[Y:%.*]]
894+
; CHECK-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i1 [[B:%.*]], i1 false
895+
; CHECK-NEXT: [[R:%.*]] = select i1 [[A:%.*]], i1 true, i1 [[TMP2]]
896896
; CHECK-NEXT: ret i1 [[R]]
897897
;
898898
%c = icmp eq i32 %x, %y
@@ -929,9 +929,9 @@ define i1 @or_and3_multiuse(i1 %a, i1 %b, i32 %x, i32 %y) {
929929

930930
define <2 x i1> @or_and3_vec(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %y) {
931931
; CHECK-LABEL: @or_and3_vec(
932-
; CHECK-NEXT: [[C:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
933-
; CHECK-NEXT: [[TMP1:%.*]] = select <2 x i1> [[C]], <2 x i1> [[B:%.*]], <2 x i1> zeroinitializer
934-
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[A:%.*]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[TMP1]]
932+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
933+
; CHECK-NEXT: [[TMP2:%.*]] = select <2 x i1> [[TMP1]], <2 x i1> [[B:%.*]], <2 x i1> zeroinitializer
934+
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[A:%.*]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[TMP2]]
935935
; CHECK-NEXT: ret <2 x i1> [[R]]
936936
;
937937
%c = icmp eq <2 x i32> %x, %y
@@ -942,9 +942,9 @@ define <2 x i1> @or_and3_vec(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %
942942

943943
define <2 x i1> @or_and3_vec_commuted(<2 x i1> %a, <2 x i1> %b, <2 x i32> %x, <2 x i32> %y) {
944944
; CHECK-LABEL: @or_and3_vec_commuted(
945-
; CHECK-NEXT: [[C:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
946-
; CHECK-NEXT: [[TMP1:%.*]] = select <2 x i1> [[C]], <2 x i1> [[B:%.*]], <2 x i1> zeroinitializer
947-
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[A:%.*]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[TMP1]]
945+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ne <2 x i32> [[X:%.*]], [[Y:%.*]]
946+
; CHECK-NEXT: [[TMP2:%.*]] = select <2 x i1> [[TMP1]], <2 x i1> [[B:%.*]], <2 x i1> zeroinitializer
947+
; CHECK-NEXT: [[R:%.*]] = select <2 x i1> [[A:%.*]], <2 x i1> <i1 true, i1 true>, <2 x i1> [[TMP2]]
948948
; CHECK-NEXT: ret <2 x i1> [[R]]
949949
;
950950
%c = icmp eq <2 x i32> %x, %y
@@ -965,3 +965,203 @@ define i1 @or_and3_wrong_operand(i1 %a, i1 %b, i32 %x, i32 %y, i1 %d) {
965965
%r = select i1 %cond, i1 %d, i1 %b
966966
ret i1 %r
967967
}
968+
969+
define i32 @or_eq_a_b(i1 %other_cond, i32 %a, i32 %b) {
970+
; CHECK-LABEL: @or_eq_a_b(
971+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
972+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[OTHER_COND:%.*]]
973+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
974+
; CHECK-NEXT: ret i32 [[SELECT]]
975+
;
976+
%cmp = icmp eq i32 %a, %b
977+
%cond = or i1 %other_cond, %cmp
978+
%select = select i1 %cond, i32 %a, i32 %b
979+
ret i32 %select
980+
}
981+
982+
define i32 @and_ne_a_b(i1 %other_cond, i32 %a, i32 %b) {
983+
; CHECK-LABEL: @and_ne_a_b(
984+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[B:%.*]]
985+
; CHECK-NEXT: [[COND:%.*]] = and i1 [[CMP]], [[OTHER_COND:%.*]]
986+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
987+
; CHECK-NEXT: ret i32 [[SELECT]]
988+
;
989+
%cmp = icmp ne i32 %a, %b
990+
%cond = and i1 %other_cond, %cmp
991+
%select = select i1 %cond, i32 %a, i32 %b
992+
ret i32 %select
993+
}
994+
995+
define i32 @or_eq_a_b_commuted(i1 %other_cond, i32 %a, i32 %b) {
996+
; CHECK-LABEL: @or_eq_a_b_commuted(
997+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
998+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[OTHER_COND:%.*]]
999+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[B]], i32 [[A]]
1000+
; CHECK-NEXT: ret i32 [[SELECT]]
1001+
;
1002+
%cmp = icmp eq i32 %a, %b
1003+
%cond = or i1 %other_cond, %cmp
1004+
%select = select i1 %cond, i32 %b, i32 %a
1005+
ret i32 %select
1006+
}
1007+
1008+
define i32 @and_ne_a_b_commuted(i1 %other_cond, i32 %a, i32 %b) {
1009+
; CHECK-LABEL: @and_ne_a_b_commuted(
1010+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[B:%.*]]
1011+
; CHECK-NEXT: [[COND:%.*]] = and i1 [[CMP]], [[OTHER_COND:%.*]]
1012+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[B]], i32 [[A]]
1013+
; CHECK-NEXT: ret i32 [[SELECT]]
1014+
;
1015+
%cmp = icmp ne i32 %a, %b
1016+
%cond = and i1 %other_cond, %cmp
1017+
%select = select i1 %cond, i32 %b, i32 %a
1018+
ret i32 %select
1019+
}
1020+
1021+
define i32 @or_eq_different_operands(i32 %a, i32 %b, i32 %c) {
1022+
; CHECK-LABEL: @or_eq_different_operands(
1023+
; CHECK-NEXT: entry:
1024+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[C:%.*]]
1025+
; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i32 [[B:%.*]], [[A]]
1026+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[CMP1]]
1027+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
1028+
; CHECK-NEXT: ret i32 [[SELECT]]
1029+
;
1030+
entry:
1031+
%cmp = icmp eq i32 %a, %c
1032+
%cmp1 = icmp eq i32 %b, %a
1033+
%cond = or i1 %cmp, %cmp1
1034+
%select = select i1 %cond, i32 %a, i32 %b
1035+
ret i32 %select
1036+
}
1037+
1038+
define i32 @or_eq_a_b_multi_use(i1 %other_cond, i32 %a, i32 %b) {
1039+
; CHECK-LABEL: @or_eq_a_b_multi_use(
1040+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
1041+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[OTHER_COND:%.*]]
1042+
; CHECK-NEXT: call void @use(i1 [[CMP]])
1043+
; CHECK-NEXT: call void @use(i1 [[COND]])
1044+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
1045+
; CHECK-NEXT: ret i32 [[SELECT]]
1046+
;
1047+
%cmp = icmp eq i32 %a, %b
1048+
%cond = or i1 %other_cond, %cmp
1049+
call void @use(i1 %cmp)
1050+
call void @use(i1 %cond)
1051+
%select = select i1 %cond, i32 %a, i32 %b
1052+
ret i32 %select
1053+
}
1054+
1055+
define <2 x i32> @or_eq_a_b_vec(<2 x i1> %other_cond ,<2 x i32> %a, <2 x i32> %b) {
1056+
; CHECK-LABEL: @or_eq_a_b_vec(
1057+
; CHECK-NEXT: entry:
1058+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i32> [[A:%.*]], [[B:%.*]]
1059+
; CHECK-NEXT: [[COND:%.*]] = or <2 x i1> [[CMP]], [[OTHER_COND:%.*]]
1060+
; CHECK-NEXT: [[SELECT:%.*]] = select <2 x i1> [[COND]], <2 x i32> [[A]], <2 x i32> [[B]]
1061+
; CHECK-NEXT: ret <2 x i32> [[SELECT]]
1062+
;
1063+
entry:
1064+
%cmp = icmp eq <2 x i32> %a, %b
1065+
%cond = or <2 x i1> %other_cond, %cmp
1066+
%select = select <2 x i1> %cond, <2 x i32> %a, <2 x i32> %b
1067+
ret <2 x i32> %select
1068+
}
1069+
1070+
define i32 @or_slt_a_b_fail(i1 %other_cond ,i32 %a, i32 %b) {
1071+
; CHECK-LABEL: @or_slt_a_b_fail(
1072+
; CHECK-NEXT: entry:
1073+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[A:%.*]], [[B:%.*]]
1074+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[OTHER_COND:%.*]]
1075+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
1076+
; CHECK-NEXT: ret i32 [[SELECT]]
1077+
; CHECK: 0:
1078+
; CHECK-NEXT: ret i32 [[SELECT]]
1079+
;
1080+
entry:
1081+
%cmp = icmp slt i32 %a, %b
1082+
%cond = or i1 %other_cond, %cmp
1083+
%select = select i1 %cond, i32 %a, i32 %b
1084+
ret i32 %select ret i32 %select
1085+
}
1086+
1087+
define i32 @or_ne_a_b_fail(i1 %other_cond, i32 %a, i32 %b) {
1088+
; CHECK-LABEL: @or_ne_a_b_fail(
1089+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[B:%.*]]
1090+
; CHECK-NEXT: [[COND:%.*]] = or i1 [[CMP]], [[OTHER_COND:%.*]]
1091+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[A]], i32 [[B]]
1092+
; CHECK-NEXT: ret i32 [[SELECT]]
1093+
;
1094+
%cmp = icmp ne i32 %a, %b
1095+
%cond = or i1 %other_cond, %cmp
1096+
%select = select i1 %cond, i32 %a, i32 %b
1097+
ret i32 %select
1098+
}
1099+
1100+
define i32 @and_ne_different_operands_fail(i32 %a, i32 %b, i32 %c) {
1101+
; CHECK-LABEL: @and_ne_different_operands_fail(
1102+
; CHECK-NEXT: entry:
1103+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[C:%.*]]
1104+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i32 [[B:%.*]], [[C]]
1105+
; CHECK-NEXT: [[COND:%.*]] = and i1 [[CMP]], [[CMP1]]
1106+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i32 [[B]], i32 [[A]]
1107+
; CHECK-NEXT: ret i32 [[SELECT]]
1108+
;
1109+
entry:
1110+
%cmp = icmp ne i32 %a, %c
1111+
%cmp1 = icmp ne i32 %b, %c
1112+
%cond = and i1 %cmp, %cmp1
1113+
%select = select i1 %cond, i32 %b, i32 %a
1114+
ret i32 %select
1115+
}
1116+
1117+
define i32 @logical_or_eq_a_b(i1 %other_cond, i32 %a, i32 %b) {
1118+
; CHECK-LABEL: @logical_or_eq_a_b(
1119+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
1120+
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[OTHER_COND:%.*]], i1 true, i1 [[CMP]]
1121+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[OR_COND]], i32 [[A]], i32 [[B]]
1122+
; CHECK-NEXT: ret i32 [[SELECT]]
1123+
;
1124+
%cmp = icmp eq i32 %a, %b
1125+
%or.cond = select i1 %other_cond, i1 true, i1 %cmp
1126+
%select = select i1 %or.cond, i32 %a, i32 %b
1127+
ret i32 %select
1128+
}
1129+
1130+
define i32 @logical_commuted_or_eq_a_b(i1 %other_cond, i32 %a, i32 %b) {
1131+
; CHECK-LABEL: @logical_commuted_or_eq_a_b(
1132+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
1133+
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 true, i1 [[OTHER_COND:%.*]]
1134+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[OR_COND]], i32 [[A]], i32 [[B]]
1135+
; CHECK-NEXT: ret i32 [[SELECT]]
1136+
;
1137+
%cmp = icmp eq i32 %a, %b
1138+
%or.cond = select i1 %cmp, i1 true, i1 %other_cond
1139+
%select = select i1 %or.cond, i32 %a, i32 %b
1140+
ret i32 %select
1141+
}
1142+
1143+
define i32 @logical_and_ne_a_b(i1 %other_cond, i32 %a, i32 %b) {
1144+
; CHECK-LABEL: @logical_and_ne_a_b(
1145+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[B:%.*]]
1146+
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[OTHER_COND:%.*]], i1 [[CMP]], i1 false
1147+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[OR_COND]], i32 [[A]], i32 [[B]]
1148+
; CHECK-NEXT: ret i32 [[SELECT]]
1149+
;
1150+
%cmp = icmp ne i32 %a, %b
1151+
%or.cond = select i1 %other_cond, i1 %cmp, i1 false
1152+
%select = select i1 %or.cond, i32 %a, i32 %b
1153+
ret i32 %select
1154+
}
1155+
1156+
define i32 @logical_commuted_and_ne_a_b(i1 %other_cond, i32 %a, i32 %b) {
1157+
; CHECK-LABEL: @logical_commuted_and_ne_a_b(
1158+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[A:%.*]], [[B:%.*]]
1159+
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 [[OTHER_COND:%.*]], i1 false
1160+
; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[OR_COND]], i32 [[A]], i32 [[B]]
1161+
; CHECK-NEXT: ret i32 [[SELECT]]
1162+
;
1163+
%cmp = icmp ne i32 %a, %b
1164+
%or.cond = select i1 %cmp, i1 %other_cond, i1 false
1165+
%select = select i1 %or.cond, i32 %a, i32 %b
1166+
ret i32 %select
1167+
}

0 commit comments

Comments
 (0)