@@ -22,7 +22,7 @@ define i1 @t0_noncanonical_ignoreme(i8 %base, i8 %offset) {
22
22
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
23
23
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
24
24
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
25
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
25
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
26
26
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
27
27
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
28
28
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -43,7 +43,7 @@ define i1 @t0_noncanonical_ignoreme_logical(i8 %base, i8 %offset) {
43
43
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
44
44
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
45
45
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
46
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
46
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
47
47
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
48
48
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
49
49
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -64,7 +64,7 @@ define i1 @t1(i8 %base, i8 %offset) {
64
64
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
65
65
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
66
66
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
67
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
67
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
68
68
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
69
69
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
70
70
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -85,7 +85,7 @@ define i1 @t1_logical(i8 %base, i8 %offset) {
85
85
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
86
86
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
87
87
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
88
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
88
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
89
89
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
90
90
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
91
91
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -105,7 +105,7 @@ define i1 @t1_strict(i8 %base, i8 %offset) {
105
105
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
106
106
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
107
107
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
108
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
108
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
109
109
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
110
110
; CHECK-NEXT: ret i1 [[NO_UNDERFLOW]]
111
111
;
@@ -125,7 +125,7 @@ define i1 @t1_strict_logical(i8 %base, i8 %offset) {
125
125
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
126
126
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
127
127
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
128
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
128
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
129
129
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
130
130
; CHECK-NEXT: ret i1 [[NO_UNDERFLOW]]
131
131
;
@@ -201,7 +201,7 @@ define i1 @t3_commutability0(i8 %base, i8 %offset) {
201
201
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
202
202
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
203
203
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
204
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
204
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
205
205
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
206
206
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
207
207
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -222,7 +222,7 @@ define i1 @t3_commutability0_logical(i8 %base, i8 %offset) {
222
222
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
223
223
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
224
224
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
225
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
225
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
226
226
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
227
227
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
228
228
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -242,7 +242,7 @@ define i1 @t4_commutability1(i8 %base, i8 %offset) {
242
242
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
243
243
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
244
244
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
245
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
245
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
246
246
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
247
247
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
248
248
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -263,7 +263,7 @@ define i1 @t4_commutability1_logical(i8 %base, i8 %offset) {
263
263
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
264
264
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
265
265
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
266
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
266
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
267
267
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
268
268
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
269
269
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -283,7 +283,7 @@ define i1 @t5_commutability2(i8 %base, i8 %offset) {
283
283
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
284
284
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
285
285
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
286
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
286
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
287
287
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
288
288
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
289
289
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -304,7 +304,7 @@ define i1 @t5_commutability2_logical(i8 %base, i8 %offset) {
304
304
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
305
305
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp uge i8 [[BASE]], [[OFFSET]]
306
306
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
307
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[BASE ]], [[OFFSET]]
307
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i8 [[ADJUSTED ]], 0
308
308
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
309
309
; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt i8 [[BASE]], [[OFFSET]]
310
310
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -382,7 +382,7 @@ define i1 @t7(i8 %base, i8 %offset) {
382
382
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
383
383
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ult i8 [[BASE]], [[OFFSET]]
384
384
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
385
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
385
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
386
386
; CHECK-NEXT: call void @use1(i1 [[NULL]])
387
387
; CHECK-NEXT: [[TMP1:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
388
388
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -403,7 +403,7 @@ define i1 @t7_logical(i8 %base, i8 %offset) {
403
403
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
404
404
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ult i8 [[BASE]], [[OFFSET]]
405
405
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
406
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
406
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
407
407
; CHECK-NEXT: call void @use1(i1 [[NULL]])
408
408
; CHECK-NEXT: [[TMP1:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
409
409
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -423,7 +423,7 @@ define i1 @t7_nonstrict(i8 %base, i8 %offset) {
423
423
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
424
424
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
425
425
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
426
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
426
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
427
427
; CHECK-NEXT: call void @use1(i1 [[NULL]])
428
428
; CHECK-NEXT: ret i1 [[UNDERFLOW]]
429
429
;
@@ -443,7 +443,7 @@ define i1 @t7_nonstrict_logical(i8 %base, i8 %offset) {
443
443
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
444
444
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
445
445
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
446
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
446
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
447
447
; CHECK-NEXT: call void @use1(i1 [[NULL]])
448
448
; CHECK-NEXT: ret i1 [[UNDERFLOW]]
449
449
;
@@ -511,7 +511,7 @@ define i1 @t9_commutative(i8 %base, i8 %offset) {
511
511
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
512
512
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ult i8 [[BASE]], [[OFFSET]]
513
513
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
514
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
514
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
515
515
; CHECK-NEXT: call void @use1(i1 [[NULL]])
516
516
; CHECK-NEXT: [[TMP1:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
517
517
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -532,7 +532,7 @@ define i1 @t9_commutative_logical(i8 %base, i8 %offset) {
532
532
; CHECK-NEXT: call void @use8(i8 [[ADJUSTED]])
533
533
; CHECK-NEXT: [[UNDERFLOW:%.*]] = icmp ult i8 [[BASE]], [[OFFSET]]
534
534
; CHECK-NEXT: call void @use1(i1 [[UNDERFLOW]])
535
- ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[BASE ]], [[OFFSET]]
535
+ ; CHECK-NEXT: [[NULL:%.*]] = icmp eq i8 [[ADJUSTED ]], 0
536
536
; CHECK-NEXT: call void @use1(i1 [[NULL]])
537
537
; CHECK-NEXT: [[TMP1:%.*]] = icmp ule i8 [[BASE]], [[OFFSET]]
538
538
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -556,7 +556,7 @@ define i1 @t10(i64 %base, i64* nonnull %offsetptr) {
556
556
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
557
557
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ule i64 [[OFFSET]], [[BASE]]
558
558
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
559
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[OFFSET ]], [[BASE]]
559
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
560
560
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
561
561
; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i64 [[OFFSET]], [[BASE]]
562
562
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -580,7 +580,7 @@ define i1 @t10_logical(i64 %base, i64* nonnull %offsetptr) {
580
580
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
581
581
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ule i64 [[OFFSET]], [[BASE]]
582
582
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
583
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[OFFSET ]], [[BASE]]
583
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
584
584
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
585
585
; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i64 [[OFFSET]], [[BASE]]
586
586
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -603,7 +603,7 @@ define i1 @t11_commutative(i64 %base, i64* nonnull %offsetptr) {
603
603
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
604
604
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ule i64 [[OFFSET]], [[BASE]]
605
605
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
606
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[OFFSET ]], [[BASE]]
606
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
607
607
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
608
608
; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i64 [[OFFSET]], [[BASE]]
609
609
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -627,7 +627,7 @@ define i1 @t11_commutative_logical(i64 %base, i64* nonnull %offsetptr) {
627
627
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
628
628
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ule i64 [[OFFSET]], [[BASE]]
629
629
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
630
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[OFFSET ]], [[BASE]]
630
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
631
631
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
632
632
; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i64 [[OFFSET]], [[BASE]]
633
633
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -651,7 +651,7 @@ define i1 @t12(i64 %base, i64* nonnull %offsetptr) {
651
651
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
652
652
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i64 [[OFFSET]], [[BASE]]
653
653
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
654
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[OFFSET ]], [[BASE]]
654
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[ADJUSTED ]], 0
655
655
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
656
656
; CHECK-NEXT: [[TMP1:%.*]] = icmp uge i64 [[OFFSET]], [[BASE]]
657
657
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -675,7 +675,7 @@ define i1 @t12_logical(i64 %base, i64* nonnull %offsetptr) {
675
675
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
676
676
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i64 [[OFFSET]], [[BASE]]
677
677
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
678
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[OFFSET ]], [[BASE]]
678
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[ADJUSTED ]], 0
679
679
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
680
680
; CHECK-NEXT: [[TMP1:%.*]] = icmp uge i64 [[OFFSET]], [[BASE]]
681
681
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -698,7 +698,7 @@ define i1 @t13(i64 %base, i64* nonnull %offsetptr) {
698
698
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
699
699
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i64 [[OFFSET]], [[BASE]]
700
700
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
701
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[OFFSET ]], [[BASE]]
701
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[ADJUSTED ]], 0
702
702
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
703
703
; CHECK-NEXT: [[TMP1:%.*]] = icmp uge i64 [[OFFSET]], [[BASE]]
704
704
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -722,7 +722,7 @@ define i1 @t13_logical(i64 %base, i64* nonnull %offsetptr) {
722
722
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
723
723
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ugt i64 [[OFFSET]], [[BASE]]
724
724
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
725
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[OFFSET ]], [[BASE]]
725
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp eq i64 [[ADJUSTED ]], 0
726
726
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
727
727
; CHECK-NEXT: [[TMP1:%.*]] = icmp uge i64 [[OFFSET]], [[BASE]]
728
728
; CHECK-NEXT: ret i1 [[TMP1]]
@@ -745,7 +745,7 @@ define i1 @t14_bad(i64 %base, i64 %offset) {
745
745
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
746
746
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ult i64 [[ADJUSTED]], [[BASE]]
747
747
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
748
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[BASE ]], [[OFFSET]]
748
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
749
749
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
750
750
; CHECK-NEXT: [[R:%.*]] = and i1 [[NOT_NULL]], [[NO_UNDERFLOW]]
751
751
; CHECK-NEXT: ret i1 [[R]]
@@ -766,7 +766,7 @@ define i1 @t14_bad_logical(i64 %base, i64 %offset) {
766
766
; CHECK-NEXT: call void @use64(i64 [[ADJUSTED]])
767
767
; CHECK-NEXT: [[NO_UNDERFLOW:%.*]] = icmp ult i64 [[ADJUSTED]], [[BASE]]
768
768
; CHECK-NEXT: call void @use1(i1 [[NO_UNDERFLOW]])
769
- ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[BASE ]], [[OFFSET]]
769
+ ; CHECK-NEXT: [[NOT_NULL:%.*]] = icmp ne i64 [[ADJUSTED ]], 0
770
770
; CHECK-NEXT: call void @use1(i1 [[NOT_NULL]])
771
771
; CHECK-NEXT: [[R:%.*]] = and i1 [[NOT_NULL]], [[NO_UNDERFLOW]]
772
772
; CHECK-NEXT: ret i1 [[R]]
0 commit comments