Skip to content

Commit 59003d7

Browse files
committed
[InstCombine] Add tests for expanding foldSelectValueEquivalence; NFC
1 parent f42025c commit 59003d7

File tree

1 file changed

+43
-3
lines changed

1 file changed

+43
-3
lines changed

llvm/test/Transforms/InstCombine/select.ll

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ define i1 @test39(i1 %cond, double %x) {
667667
; CHECK-LABEL: @test39(
668668
; CHECK-NEXT: ret i1 true
669669
;
670-
%s = select i1 %cond, double %x, double 0x7FF0000000000000 ; RHS = +infty
670+
%s = select i1 %cond, double %x, double 0x7FF0000000000000 ; RHS = +infty
671671
%cmp = fcmp ule double %x, %s
672672
ret i1 %cmp
673673
}
@@ -1364,7 +1364,7 @@ define i32 @PR23757_ne(i32 %x, ptr %p) {
13641364
; CHECK-NEXT: ret i32 -2147483648
13651365
;
13661366
%cmp = icmp ne i32 %x, 2147483647
1367-
store i1 %cmp, ptr %p ; thwart predicate canonicalization
1367+
store i1 %cmp, ptr %p ; thwart predicate canonicalization
13681368
%add = add nsw i32 %x, 1
13691369
%sel = select i1 %cmp, i32 -2147483648, i32 %add
13701370
ret i32 %sel
@@ -1378,7 +1378,7 @@ define i32 @PR23757_ne_swapped(i32 %x, ptr %p) {
13781378
; CHECK-NEXT: ret i32 [[ADD]]
13791379
;
13801380
%cmp = icmp ne i32 %x, 2147483647
1381-
store i1 %cmp, ptr %p ; thwart predicate canonicalization
1381+
store i1 %cmp, ptr %p ; thwart predicate canonicalization
13821382
%add = add nsw i32 %x, 1
13831383
%sel = select i1 %cmp, i32 %add, i32 -2147483648
13841384
ret i32 %sel
@@ -2809,6 +2809,46 @@ define <2 x i8> @select_replacement_add_eq_vec_undef(<2 x i8> %x, <2 x i8> %y) {
28092809
ret <2 x i8> %sel
28102810
}
28112811

2812+
define <2 x i8> @select_replacement_add_eq_vec_undef_okay(<2 x i8> %x, <2 x i8> %y) {
2813+
; CHECK-LABEL: @select_replacement_add_eq_vec_undef_okay(
2814+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i8> [[X:%.*]], <i8 1, i8 1>
2815+
; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i8> <i8 2, i8 undef>, <2 x i8> [[Y:%.*]]
2816+
; CHECK-NEXT: ret <2 x i8> [[SEL]]
2817+
;
2818+
%cmp = icmp eq <2 x i8> %x, <i8 1, i8 1>
2819+
%add = add <2 x i8> %x, <i8 1, i8 undef>
2820+
%sel = select <2 x i1> %cmp, <2 x i8> %add, <2 x i8> %y
2821+
ret <2 x i8> %sel
2822+
}
2823+
2824+
2825+
define <2 x i8> @select_replacement_add_eq_vec_undef_okay_todo(<2 x i8> %x, <2 x i8> %y) {
2826+
; CHECK-LABEL: @select_replacement_add_eq_vec_undef_okay_todo(
2827+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i8> [[X:%.*]], <i8 1, i8 undef>
2828+
; CHECK-NEXT: [[ADD:%.*]] = add <2 x i8> [[X]], <i8 1, i8 undef>
2829+
; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i8> [[ADD]], <2 x i8> [[Y:%.*]]
2830+
; CHECK-NEXT: ret <2 x i8> [[SEL]]
2831+
;
2832+
%cmp = icmp eq <2 x i8> %x, <i8 1, i8 undef>
2833+
%add = add <2 x i8> %x, <i8 1, i8 undef>
2834+
%sel = select <2 x i1> %cmp, <2 x i8> %add, <2 x i8> %y
2835+
ret <2 x i8> %sel
2836+
}
2837+
2838+
define <2 x i8> @select_replacement_xor_eq_vec(<2 x i8> %x, <2 x i8> %y, <2 x i8> %z) {
2839+
; CHECK-LABEL: @select_replacement_xor_eq_vec(
2840+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i8> [[X:%.*]], [[Y:%.*]]
2841+
; CHECK-NEXT: [[ADD:%.*]] = xor <2 x i8> [[X]], [[Y]]
2842+
; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i8> [[ADD]], <2 x i8> [[Z:%.*]]
2843+
; CHECK-NEXT: ret <2 x i8> [[SEL]]
2844+
;
2845+
%cmp = icmp eq <2 x i8> %x, %y
2846+
%add = xor <2 x i8> %x, %y
2847+
%sel = select <2 x i1> %cmp, <2 x i8> %add, <2 x i8> %z
2848+
ret <2 x i8> %sel
2849+
}
2850+
2851+
28122852
define i8 @select_replacement_add_ne(i8 %x, i8 %y) {
28132853
; CHECK-LABEL: @select_replacement_add_ne(
28142854
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i8 [[X:%.*]], 1

0 commit comments

Comments
 (0)