Skip to content

Commit 26d2ace

Browse files
committed
[InstSimplify] move tests for select from InstCombine; NFC
InstCombine has transforms that would enable these simplifications in an indirect way, but those transforms are unsafe and likely to be removed.
1 parent 376bc39 commit 26d2ace

File tree

2 files changed

+24
-33
lines changed

2 files changed

+24
-33
lines changed

llvm/test/Transforms/InstCombine/select.ll

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,6 @@
55

66
target datalayout = "e-p:64:64-p1:16:16-p2:32:32:32-p3:64:64:64"
77

8-
define i32 @test1(i32 %A, i32 %B) {
9-
; CHECK-LABEL: @test1(
10-
; CHECK-NEXT: ret i32 [[B:%.*]]
11-
;
12-
%C = select i1 false, i32 %A, i32 %B
13-
ret i32 %C
14-
}
15-
16-
define i32 @test2(i32 %A, i32 %B) {
17-
; CHECK-LABEL: @test2(
18-
; CHECK-NEXT: ret i32 [[A:%.*]]
19-
;
20-
%C = select i1 true, i32 %A, i32 %B
21-
ret i32 %C
22-
}
23-
24-
25-
define i32 @test3(i1 %C, i32 %I) {
26-
; CHECK-LABEL: @test3(
27-
; CHECK-NEXT: ret i32 [[I:%.*]]
28-
;
29-
%V = select i1 %C, i32 %I, i32 %I
30-
ret i32 %V
31-
}
32-
33-
define i1 @test4(i1 %C) {
34-
; CHECK-LABEL: @test4(
35-
; CHECK-NEXT: ret i1 [[C:%.*]]
36-
;
37-
%V = select i1 %C, i1 true, i1 false
38-
ret i1 %V
39-
}
40-
418
define i1 @test5(i1 %C) {
429
; CHECK-LABEL: @test5(
4310
; CHECK-NEXT: [[NOT_C:%.*]] = xor i1 [[C:%.*]], true

llvm/test/Transforms/InstSimplify/select.ll

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,30 @@ define <2 x i1> @bool_true_or_false_vec_undef(<2 x i1> %cond) {
2525
ret <2 x i1> %s
2626
}
2727

28+
define i32 @cond_is_false(i32 %A, i32 %B) {
29+
; CHECK-LABEL: @cond_is_false(
30+
; CHECK-NEXT: ret i32 [[B:%.*]]
31+
;
32+
%C = select i1 false, i32 %A, i32 %B
33+
ret i32 %C
34+
}
35+
36+
define i32 @cond_is_true(i32 %A, i32 %B) {
37+
; CHECK-LABEL: @cond_is_true(
38+
; CHECK-NEXT: ret i32 [[A:%.*]]
39+
;
40+
%C = select i1 true, i32 %A, i32 %B
41+
ret i32 %C
42+
}
43+
44+
define i32 @equal_arms(i1 %C, i32 %I) {
45+
; CHECK-LABEL: @equal_arms(
46+
; CHECK-NEXT: ret i32 [[I:%.*]]
47+
;
48+
%V = select i1 %C, i32 %I, i32 %I
49+
ret i32 %V
50+
}
51+
2852
define <2 x i8> @vsel_tvec(<2 x i8> %x, <2 x i8> %y) {
2953
; CHECK-LABEL: @vsel_tvec(
3054
; CHECK-NEXT: ret <2 x i8> [[X:%.*]]

0 commit comments

Comments
 (0)