Skip to content

Commit b32e7ab

Browse files
committed
Update existing tests
1 parent bd8e862 commit b32e7ab

File tree

3 files changed

+20
-60
lines changed

3 files changed

+20
-60
lines changed

llvm/test/Transforms/InstCombine/compare-3way.ll

+10-29
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ define void @test_low_sgt(i64 %a, i64 %b) {
1515
; CHECK: normal:
1616
; CHECK-NEXT: ret void
1717
; CHECK: unreached:
18-
; CHECK-NEXT: [[EQ:%.*]] = icmp ne i64 [[A]], [[B]]
19-
; CHECK-NEXT: [[RESULT:%.*]] = zext i1 [[EQ]] to i32
18+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
2019
; CHECK-NEXT: call void @use(i32 [[RESULT]])
2120
; CHECK-NEXT: ret void
2221
;
@@ -62,10 +61,7 @@ define void @test_low_sge(i64 %a, i64 %b) {
6261
; CHECK: normal:
6362
; CHECK-NEXT: ret void
6463
; CHECK: unreached:
65-
; CHECK-NEXT: [[EQ:%.*]] = icmp eq i64 [[A]], [[B]]
66-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
67-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
68-
; CHECK-NEXT: [[RESULT:%.*]] = select i1 [[EQ]], i32 0, i32 [[DOT]]
64+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
6965
; CHECK-NEXT: call void @use(i32 [[RESULT]])
7066
; CHECK-NEXT: ret void
7167
;
@@ -114,8 +110,7 @@ define void @test_low_ne(i64 %a, i64 %b) {
114110
; CHECK: normal:
115111
; CHECK-NEXT: ret void
116112
; CHECK: unreached:
117-
; CHECK-NEXT: [[EQ:%.*]] = icmp ne i64 [[A]], [[B]]
118-
; CHECK-NEXT: [[RESULT:%.*]] = zext i1 [[EQ]] to i32
113+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
119114
; CHECK-NEXT: call void @use(i32 [[RESULT]])
120115
; CHECK-NEXT: ret void
121116
;
@@ -212,8 +207,7 @@ define void @test_mid_sge(i64 %a, i64 %b) {
212207
; CHECK: normal:
213208
; CHECK-NEXT: ret void
214209
; CHECK: unreached:
215-
; CHECK-NEXT: [[EQ:%.*]] = icmp ne i64 [[A]], [[B]]
216-
; CHECK-NEXT: [[RESULT:%.*]] = zext i1 [[EQ]] to i32
210+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
217211
; CHECK-NEXT: call void @use(i32 [[RESULT]])
218212
; CHECK-NEXT: ret void
219213
;
@@ -238,10 +232,7 @@ define void @test_mid_sle(i64 %a, i64 %b) {
238232
; CHECK: normal:
239233
; CHECK-NEXT: ret void
240234
; CHECK: unreached:
241-
; CHECK-NEXT: [[EQ:%.*]] = icmp eq i64 [[A]], [[B]]
242-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
243-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
244-
; CHECK-NEXT: [[RESULT:%.*]] = select i1 [[EQ]], i32 0, i32 [[DOT]]
235+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
245236
; CHECK-NEXT: call void @use(i32 [[RESULT]])
246237
; CHECK-NEXT: ret void
247238
;
@@ -266,9 +257,8 @@ define void @test_mid_ne(i64 %a, i64 %b) {
266257
; CHECK: normal:
267258
; CHECK-NEXT: ret void
268259
; CHECK: unreached:
269-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
270-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
271-
; CHECK-NEXT: call void @use(i32 [[DOT]])
260+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
261+
; CHECK-NEXT: call void @use(i32 [[RESULT]])
272262
; CHECK-NEXT: ret void
273263
;
274264
%eq = icmp eq i64 %a, %b
@@ -338,10 +328,7 @@ define void @test_high_slt(i64 %a, i64 %b) {
338328
; CHECK: normal:
339329
; CHECK-NEXT: ret void
340330
; CHECK: unreached:
341-
; CHECK-NEXT: [[EQ:%.*]] = icmp eq i64 [[A]], [[B]]
342-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
343-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
344-
; CHECK-NEXT: [[RESULT:%.*]] = select i1 [[EQ]], i32 0, i32 [[DOT]]
331+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
345332
; CHECK-NEXT: call void @use(i32 [[RESULT]])
346333
; CHECK-NEXT: ret void
347334
;
@@ -389,10 +376,7 @@ define void @test_high_sle(i64 %a, i64 %b) {
389376
; CHECK: normal:
390377
; CHECK-NEXT: ret void
391378
; CHECK: unreached:
392-
; CHECK-NEXT: [[EQ:%.*]] = icmp eq i64 [[A]], [[B]]
393-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
394-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
395-
; CHECK-NEXT: [[RESULT:%.*]] = select i1 [[EQ]], i32 0, i32 [[DOT]]
379+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
396380
; CHECK-NEXT: call void @use(i32 [[RESULT]])
397381
; CHECK-NEXT: ret void
398382
;
@@ -417,10 +401,7 @@ define void @test_high_ne(i64 %a, i64 %b) {
417401
; CHECK: normal:
418402
; CHECK-NEXT: ret void
419403
; CHECK: unreached:
420-
; CHECK-NEXT: [[EQ:%.*]] = icmp eq i64 [[A]], [[B]]
421-
; CHECK-NEXT: [[SLT:%.*]] = icmp slt i64 [[A]], [[B]]
422-
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[SLT]], i32 -1, i32 1
423-
; CHECK-NEXT: [[RESULT:%.*]] = select i1 [[EQ]], i32 0, i32 [[DOT]]
404+
; CHECK-NEXT: [[RESULT:%.*]] = call i32 @llvm.scmp.i32.i64(i64 [[A]], i64 [[B]])
424405
; CHECK-NEXT: call void @use(i32 [[RESULT]])
425406
; CHECK-NEXT: ret void
426407
;

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

+7-23
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,7 @@ define <2 x i8> @sel_shuf_narrowing_commute2(<4 x i8> %x, <4 x i8> %y, <2 x i8>
177177

178178
define i8 @strong_order_cmp_slt_eq(i32 %a, i32 %b) {
179179
; CHECK-LABEL: @strong_order_cmp_slt_eq(
180-
; CHECK-NEXT: [[CMP_LT:%.*]] = icmp slt i32 [[A:%.*]], [[B:%.*]]
181-
; CHECK-NEXT: [[SEL_LT:%.*]] = select i1 [[CMP_LT]], i8 -1, i8 1
182-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
183-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_LT]]
180+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[A:%.*]], i32 [[B:%.*]])
184181
; CHECK-NEXT: ret i8 [[SEL_EQ]]
185182
;
186183
%cmp.lt = icmp slt i32 %a, %b
@@ -192,10 +189,7 @@ define i8 @strong_order_cmp_slt_eq(i32 %a, i32 %b) {
192189

193190
define i8 @strong_order_cmp_ult_eq(i32 %a, i32 %b) {
194191
; CHECK-LABEL: @strong_order_cmp_ult_eq(
195-
; CHECK-NEXT: [[CMP_LT:%.*]] = icmp ult i32 [[A:%.*]], [[B:%.*]]
196-
; CHECK-NEXT: [[SEL_LT:%.*]] = select i1 [[CMP_LT]], i8 -1, i8 1
197-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
198-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_LT]]
192+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.ucmp.i8.i32(i32 [[A:%.*]], i32 [[B:%.*]])
199193
; CHECK-NEXT: ret i8 [[SEL_EQ]]
200194
;
201195
%cmp.lt = icmp ult i32 %a, %b
@@ -252,10 +246,7 @@ define i8 @strong_order_cmp_slt_ult_wrong_pred(i32 %a, i32 %b) {
252246

253247
define i8 @strong_order_cmp_sgt_eq(i32 %a, i32 %b) {
254248
; CHECK-LABEL: @strong_order_cmp_sgt_eq(
255-
; CHECK-NEXT: [[CMP_GT:%.*]] = icmp sgt i32 [[A:%.*]], [[B:%.*]]
256-
; CHECK-NEXT: [[SEL_GT:%.*]] = select i1 [[CMP_GT]], i8 1, i8 -1
257-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
258-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_GT]]
249+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[A:%.*]], i32 [[B:%.*]])
259250
; CHECK-NEXT: ret i8 [[SEL_EQ]]
260251
;
261252
%cmp.gt = icmp sgt i32 %a, %b
@@ -267,10 +258,7 @@ define i8 @strong_order_cmp_sgt_eq(i32 %a, i32 %b) {
267258

268259
define i8 @strong_order_cmp_ugt_eq(i32 %a, i32 %b) {
269260
; CHECK-LABEL: @strong_order_cmp_ugt_eq(
270-
; CHECK-NEXT: [[CMP_GT:%.*]] = icmp ugt i32 [[A:%.*]], [[B:%.*]]
271-
; CHECK-NEXT: [[SEL_GT:%.*]] = select i1 [[CMP_GT]], i8 1, i8 -1
272-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
273-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_GT]]
261+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.ucmp.i8.i32(i32 [[A:%.*]], i32 [[B:%.*]])
274262
; CHECK-NEXT: ret i8 [[SEL_EQ]]
275263
;
276264
%cmp.gt = icmp ugt i32 %a, %b
@@ -395,9 +383,7 @@ define i8 @strong_order_cmp_slt_eq_slt_not_oneuse(i32 %a, i32 %b) {
395383
; CHECK-LABEL: @strong_order_cmp_slt_eq_slt_not_oneuse(
396384
; CHECK-NEXT: [[CMP_LT:%.*]] = icmp slt i32 [[A:%.*]], [[B:%.*]]
397385
; CHECK-NEXT: call void @use1(i1 [[CMP_LT]])
398-
; CHECK-NEXT: [[SEL_LT:%.*]] = select i1 [[CMP_LT]], i8 -1, i8 1
399-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
400-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_LT]]
386+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[A]], i32 [[B]])
401387
; CHECK-NEXT: ret i8 [[SEL_EQ]]
402388
;
403389
%cmp.lt = icmp slt i32 %a, %b
@@ -410,11 +396,9 @@ define i8 @strong_order_cmp_slt_eq_slt_not_oneuse(i32 %a, i32 %b) {
410396

411397
define i8 @strong_order_cmp_sgt_eq_eq_not_oneuse(i32 %a, i32 %b) {
412398
; CHECK-LABEL: @strong_order_cmp_sgt_eq_eq_not_oneuse(
413-
; CHECK-NEXT: [[CMP_GT:%.*]] = icmp sgt i32 [[A:%.*]], [[B:%.*]]
414-
; CHECK-NEXT: [[SEL_GT:%.*]] = select i1 [[CMP_GT]], i8 1, i8 -1
415-
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A]], [[B]]
399+
; CHECK-NEXT: [[CMP_EQ:%.*]] = icmp eq i32 [[A:%.*]], [[B:%.*]]
416400
; CHECK-NEXT: call void @use1(i1 [[CMP_EQ]])
417-
; CHECK-NEXT: [[SEL_EQ:%.*]] = select i1 [[CMP_EQ]], i8 0, i8 [[SEL_GT]]
401+
; CHECK-NEXT: [[SEL_EQ:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[A]], i32 [[B]])
418402
; CHECK-NEXT: ret i8 [[SEL_EQ]]
419403
;
420404
%cmp.gt = icmp sgt i32 %a, %b

llvm/test/Transforms/InstCombine/sink_to_unreachable.ll

+3-8
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ define void @test_01(i32 %x, i32 %y) {
1010
; CHECK-NEXT: [[C2:%.*]] = icmp slt i32 [[X:%.*]], [[Y:%.*]]
1111
; CHECK-NEXT: br i1 [[C2]], label [[EXIT:%.*]], label [[UNREACHED:%.*]]
1212
; CHECK: unreached:
13-
; CHECK-NEXT: [[C1:%.*]] = icmp ne i32 [[X]], [[Y]]
14-
; CHECK-NEXT: [[COMPARATOR:%.*]] = zext i1 [[C1]] to i32
13+
; CHECK-NEXT: [[COMPARATOR:%.*]] = call i32 @llvm.scmp.i32.i32(i32 [[X]], i32 [[Y]])
1514
; CHECK-NEXT: call void @use(i32 [[COMPARATOR]])
1615
; CHECK-NEXT: unreachable
1716
; CHECK: exit:
@@ -42,9 +41,7 @@ define void @test_02(i32 %x, i32 %y) {
4241
; CHECK-NEXT: [[C3:%.*]] = icmp sgt i32 [[X]], [[Y]]
4342
; CHECK-NEXT: br i1 [[C3]], label [[EXIT]], label [[UNREACHED:%.*]]
4443
; CHECK: unreached:
45-
; CHECK-NEXT: [[C1:%.*]] = icmp eq i32 [[X]], [[Y]]
46-
; CHECK-NEXT: [[SIGNED:%.*]] = select i1 [[C2]], i32 -1, i32 1
47-
; CHECK-NEXT: [[COMPARATOR:%.*]] = select i1 [[C1]], i32 0, i32 [[SIGNED]]
44+
; CHECK-NEXT: [[COMPARATOR:%.*]] = call i32 @llvm.scmp.i32.i32(i32 [[X]], i32 [[Y]])
4845
; CHECK-NEXT: call void @use(i32 [[COMPARATOR]])
4946
; CHECK-NEXT: unreachable
5047
; CHECK: exit:
@@ -78,9 +75,7 @@ define i32 @test_03(i32 %x, i32 %y) {
7875
; CHECK-NEXT: [[C3:%.*]] = icmp sgt i32 [[X]], [[Y]]
7976
; CHECK-NEXT: br i1 [[C3]], label [[EXIT]], label [[UNREACHED:%.*]]
8077
; CHECK: unreached:
81-
; CHECK-NEXT: [[C1:%.*]] = icmp eq i32 [[X]], [[Y]]
82-
; CHECK-NEXT: [[SIGNED:%.*]] = select i1 [[C2]], i32 -1, i32 1
83-
; CHECK-NEXT: [[COMPARATOR:%.*]] = select i1 [[C1]], i32 0, i32 [[SIGNED]]
78+
; CHECK-NEXT: [[COMPARATOR:%.*]] = call i32 @llvm.scmp.i32.i32(i32 [[X]], i32 [[Y]])
8479
; CHECK-NEXT: ret i32 [[COMPARATOR]]
8580
; CHECK: exit:
8681
; CHECK-NEXT: ret i32 0

0 commit comments

Comments
 (0)