@@ -10,16 +10,12 @@ define void @test.not.uge.ult(i8 %start, i8 %low, i8 %high) {
10
10
; CHECK: if.then:
11
11
; CHECK-NEXT: ret void
12
12
; CHECK: if.end:
13
- ; CHECK-NEXT: [[T_0:%.*]] = icmp ult i8 [[START]], [[HIGH]]
14
13
; CHECK-NEXT: call void @use(i1 true)
15
14
; CHECK-NEXT: [[START_1:%.*]] = add nuw i8 [[START]], 1
16
- ; CHECK-NEXT: [[T_1:%.*]] = icmp ult i8 [[START_1]], [[HIGH]]
17
15
; CHECK-NEXT: call void @use(i1 true)
18
16
; CHECK-NEXT: [[START_2:%.*]] = add nuw i8 [[START]], 2
19
- ; CHECK-NEXT: [[T_2:%.*]] = icmp ult i8 [[START_2]], [[HIGH]]
20
17
; CHECK-NEXT: call void @use(i1 true)
21
18
; CHECK-NEXT: [[START_3:%.*]] = add nuw i8 [[START]], 3
22
- ; CHECK-NEXT: [[T_3:%.*]] = icmp ult i8 [[START_3]], [[HIGH]]
23
19
; CHECK-NEXT: call void @use(i1 true)
24
20
; CHECK-NEXT: [[START_4:%.*]] = add nuw i8 [[START]], 4
25
21
; CHECK-NEXT: [[C_4:%.*]] = icmp ult i8 [[START_4]], [[HIGH]]
@@ -61,19 +57,14 @@ define void @test.not.uge.ule(i8 %start, i8 %low, i8 %high) {
61
57
; CHECK: if.then:
62
58
; CHECK-NEXT: ret void
63
59
; CHECK: if.end:
64
- ; CHECK-NEXT: [[T_0:%.*]] = icmp ule i8 [[START]], [[HIGH]]
65
60
; CHECK-NEXT: call void @use(i1 true)
66
61
; CHECK-NEXT: [[START_1:%.*]] = add nuw i8 [[START]], 1
67
- ; CHECK-NEXT: [[T_1:%.*]] = icmp ule i8 [[START_1]], [[HIGH]]
68
62
; CHECK-NEXT: call void @use(i1 true)
69
63
; CHECK-NEXT: [[START_2:%.*]] = add nuw i8 [[START]], 2
70
- ; CHECK-NEXT: [[T_2:%.*]] = icmp ule i8 [[START_2]], [[HIGH]]
71
64
; CHECK-NEXT: call void @use(i1 true)
72
65
; CHECK-NEXT: [[START_3:%.*]] = add nuw i8 [[START]], 3
73
- ; CHECK-NEXT: [[T_3:%.*]] = icmp ule i8 [[START_3]], [[HIGH]]
74
66
; CHECK-NEXT: call void @use(i1 true)
75
67
; CHECK-NEXT: [[START_4:%.*]] = add nuw i8 [[START]], 4
76
- ; CHECK-NEXT: [[T_4:%.*]] = icmp ule i8 [[START_4]], [[HIGH]]
77
68
; CHECK-NEXT: call void @use(i1 true)
78
69
; CHECK-NEXT: [[START_5:%.*]] = add nuw i8 [[START]], 5
79
70
; CHECK-NEXT: [[C_5:%.*]] = icmp ule i8 [[START_5]], [[HIGH]]
@@ -120,19 +111,14 @@ define void @test.not.uge.ugt(i8 %start, i8 %low, i8 %high) {
120
111
; CHECK: if.then:
121
112
; CHECK-NEXT: ret void
122
113
; CHECK: if.end:
123
- ; CHECK-NEXT: [[F_0:%.*]] = icmp ugt i8 [[START]], [[HIGH]]
124
114
; CHECK-NEXT: call void @use(i1 false)
125
115
; CHECK-NEXT: [[START_1:%.*]] = add nuw i8 [[START]], 1
126
- ; CHECK-NEXT: [[F_1:%.*]] = icmp ugt i8 [[START_1]], [[HIGH]]
127
116
; CHECK-NEXT: call void @use(i1 false)
128
117
; CHECK-NEXT: [[START_2:%.*]] = add nuw i8 [[START]], 2
129
- ; CHECK-NEXT: [[F_2:%.*]] = icmp ugt i8 [[START_2]], [[HIGH]]
130
118
; CHECK-NEXT: call void @use(i1 false)
131
119
; CHECK-NEXT: [[START_3:%.*]] = add nuw i8 [[START]], 3
132
- ; CHECK-NEXT: [[F_3:%.*]] = icmp ugt i8 [[START_3]], [[HIGH]]
133
120
; CHECK-NEXT: call void @use(i1 false)
134
121
; CHECK-NEXT: [[START_4:%.*]] = add nuw i8 [[START]], 4
135
- ; CHECK-NEXT: [[F_4:%.*]] = icmp ugt i8 [[START_4]], [[HIGH]]
136
122
; CHECK-NEXT: call void @use(i1 false)
137
123
; CHECK-NEXT: [[START_5:%.*]] = add nuw i8 [[START]], 5
138
124
; CHECK-NEXT: [[C_5:%.*]] = icmp ugt i8 [[START_5]], [[HIGH]]
@@ -183,16 +169,12 @@ define void @test.not.uge.uge(i8 %start, i8 %low, i8 %high) {
183
169
; CHECK: if.then:
184
170
; CHECK-NEXT: ret void
185
171
; CHECK: if.end:
186
- ; CHECK-NEXT: [[F_0:%.*]] = icmp ugt i8 [[START]], [[HIGH]]
187
172
; CHECK-NEXT: call void @use(i1 false)
188
173
; CHECK-NEXT: [[START_1:%.*]] = add nuw i8 [[START]], 1
189
- ; CHECK-NEXT: [[F_1:%.*]] = icmp uge i8 [[START_1]], [[HIGH]]
190
174
; CHECK-NEXT: call void @use(i1 false)
191
175
; CHECK-NEXT: [[START_2:%.*]] = add nuw i8 [[START]], 2
192
- ; CHECK-NEXT: [[F_2:%.*]] = icmp uge i8 [[START_2]], [[HIGH]]
193
176
; CHECK-NEXT: call void @use(i1 false)
194
177
; CHECK-NEXT: [[START_3:%.*]] = add nuw i8 [[START]], 3
195
- ; CHECK-NEXT: [[F_3:%.*]] = icmp uge i8 [[START_3]], [[HIGH]]
196
178
; CHECK-NEXT: call void @use(i1 false)
197
179
; CHECK-NEXT: [[START_4:%.*]] = add nuw i8 [[START]], 4
198
180
; CHECK-NEXT: [[C_4:%.*]] = icmp uge i8 [[START_4]], [[HIGH]]
@@ -251,10 +233,8 @@ define void @test.decompose.nonconst(i8 %a, i8 %b, i8 %c, i8 %d) {
251
233
; CHECK-NEXT: br i1 [[AND_1]], label [[IF_THEN_2:%.*]], label [[IF_END]]
252
234
; CHECK: if.then.2:
253
235
; CHECK-NEXT: [[ADD_0:%.*]] = add nuw i8 [[A]], [[B]]
254
- ; CHECK-NEXT: [[T_0:%.*]] = icmp uge i8 [[ADD_0]], [[C]]
255
236
; CHECK-NEXT: call void @use(i1 true)
256
237
; CHECK-NEXT: [[ADD_1:%.*]] = add nuw i8 [[A]], [[A]]
257
- ; CHECK-NEXT: [[T_1:%.*]] = icmp uge i8 [[ADD_0]], [[C]]
258
238
; CHECK-NEXT: call void @use(i1 true)
259
239
; CHECK-NEXT: [[ADD_2:%.*]] = add nuw i8 [[A]], [[D:%.*]]
260
240
; CHECK-NEXT: [[C_4:%.*]] = icmp uge i8 [[ADD_2]], [[C]]
@@ -343,7 +323,6 @@ define i1 @test_n_must_ule_1_due_to_nuw(i8 %n, i8 %i) {
343
323
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[I]], [[ADD]]
344
324
; CHECK-NEXT: br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
345
325
; CHECK: if.then:
346
- ; CHECK-NEXT: [[T:%.*]] = icmp ule i8 [[N]], 1
347
326
; CHECK-NEXT: ret i1 true
348
327
; CHECK: if.end:
349
328
; CHECK-NEXT: [[F:%.*]] = icmp ule i8 [[N]], 1
@@ -402,7 +381,6 @@ define i1 @test_n_must_ule_2_due_to_nuw(i8 %n, i8 %i) {
402
381
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[I]], [[ADD]]
403
382
; CHECK-NEXT: br i1 [[C_1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
404
383
; CHECK: if.then:
405
- ; CHECK-NEXT: [[T:%.*]] = icmp ule i8 [[N]], 2
406
384
; CHECK-NEXT: ret i1 true
407
385
; CHECK: if.end:
408
386
; CHECK-NEXT: [[F:%.*]] = icmp ule i8 [[N]], 2
@@ -462,7 +440,6 @@ define i1 @add_nuw_neg_pr54224_i16(i16 %a) {
462
440
; CHECK-NEXT: [[C_1:%.*]] = icmp ugt i16 0, [[NEG2]]
463
441
; CHECK-NEXT: br i1 [[C_1]], label [[EXIT_1:%.*]], label [[EXIT_2:%.*]]
464
442
; CHECK: exit.1:
465
- ; CHECK-NEXT: [[C_2:%.*]] = icmp ugt i16 [[A]], 0
466
443
; CHECK-NEXT: ret i1 false
467
444
; CHECK: exit.2:
468
445
; CHECK-NEXT: [[C_3:%.*]] = icmp ugt i16 [[A]], 0
@@ -516,13 +493,11 @@ define i1 @add_nuw_neg2_i8(i8 %a) {
516
493
; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8 [[NEG2]], -2
517
494
; CHECK-NEXT: br i1 [[C_1]], label [[EXIT_1:%.*]], label [[EXIT_2:%.*]]
518
495
; CHECK: exit.1:
519
- ; CHECK-NEXT: [[T_1:%.*]] = icmp ult i8 [[A]], 2
520
496
; CHECK-NEXT: [[C_2:%.*]] = icmp ult i8 [[A]], 1
521
497
; CHECK-NEXT: [[RES_1:%.*]] = xor i1 true, [[C_2]]
522
498
; CHECK-NEXT: ret i1 [[RES_1]]
523
499
; CHECK: exit.2:
524
500
; CHECK-NEXT: [[C_3:%.*]] = icmp ult i8 [[A]], 3
525
- ; CHECK-NEXT: [[F_1:%.*]] = icmp ult i8 [[A]], 2
526
501
; CHECK-NEXT: [[RES_2:%.*]] = xor i1 [[C_3]], false
527
502
; CHECK-NEXT: ret i1 [[RES_2]]
528
503
;
@@ -588,7 +563,6 @@ define i1 @test_chained_adds_nuw_1(i8 %a, i8 %b) {
588
563
; CHECK-NEXT: call void @llvm.assume(i1 [[C_B]])
589
564
; CHECK-NEXT: [[ADD_1:%.*]] = add nuw i8 [[A]], [[B]]
590
565
; CHECK-NEXT: [[ADD_2:%.*]] = add nuw i8 [[ADD_1]], 2
591
- ; CHECK-NEXT: [[T_1:%.*]] = icmp uge i8 [[ADD_2]], 13
592
566
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[ADD_2]], 14
593
567
; CHECK-NEXT: [[RES_1:%.*]] = xor i1 true, [[C_1]]
594
568
; CHECK-NEXT: ret i1 [[RES_1]]
@@ -616,7 +590,6 @@ define i1 @test_chained_adds_nuw_2(i8 %a, i8 %b) {
616
590
; CHECK-NEXT: [[ADD_1:%.*]] = add nuw i8 [[A]], [[B]]
617
591
; CHECK-NEXT: [[ADD_2:%.*]] = add nuw i8 [[ADD_1]], 2
618
592
; CHECK-NEXT: [[ADD_3:%.*]] = add nuw i8 [[ADD_2]], [[A]]
619
- ; CHECK-NEXT: [[T_1:%.*]] = icmp uge i8 [[ADD_3]], 18
620
593
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[ADD_3]], 19
621
594
; CHECK-NEXT: [[RES_1:%.*]] = xor i1 true, [[C_1]]
622
595
; CHECK-NEXT: ret i1 [[RES_1]]
@@ -645,7 +618,6 @@ define i1 @test_chained_adds_nuw_3(i8 %a, i8 %b) {
645
618
; CHECK-NEXT: [[ADD_1:%.*]] = add nuw i8 [[A]], 2
646
619
; CHECK-NEXT: [[ADD_2:%.*]] = add nuw i8 [[ADD_1]], [[B]]
647
620
; CHECK-NEXT: [[ADD_3:%.*]] = add nuw i8 [[ADD_2]], [[A]]
648
- ; CHECK-NEXT: [[T_1:%.*]] = icmp uge i8 [[ADD_3]], 18
649
621
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[ADD_3]], 19
650
622
; CHECK-NEXT: [[RES_1:%.*]] = xor i1 true, [[C_1]]
651
623
; CHECK-NEXT: ret i1 [[RES_1]]
@@ -674,7 +646,6 @@ define i1 @test_chained_adds_nuw_4(i8 %a, i8 %b) {
674
646
; CHECK-NEXT: [[ADD_1:%.*]] = add nuw i8 [[A]], 2
675
647
; CHECK-NEXT: [[ADD_2:%.*]] = add nuw i8 [[ADD_1]], [[B]]
676
648
; CHECK-NEXT: [[ADD_3:%.*]] = add nuw i8 [[ADD_2]], 10
677
- ; CHECK-NEXT: [[T_1:%.*]] = icmp uge i8 [[ADD_3]], 23
678
649
; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8 [[ADD_3]], 24
679
650
; CHECK-NEXT: [[RES_1:%.*]] = xor i1 true, [[C_1]]
680
651
; CHECK-NEXT: ret i1 [[RES_1]]
0 commit comments