@@ -7,11 +7,10 @@ define void @int_iv_nuw(i64 %base, i64 %end) {
7
7
; CHECK-NEXT: entry:
8
8
; CHECK-NEXT: br label [[LOOP:%.*]]
9
9
; CHECK: loop:
10
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
11
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
10
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
11
+ ; CHECK-NEXT: [[IV2 :%.*]] = add nuw i64 [[IV ]], [[BASE] ]
12
12
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
13
13
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
14
- ; CHECK-NEXT: [[IV2_NEXT]] = add nuw i64 [[IV_NEXT]], [[BASE]]
15
14
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
16
15
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
17
16
; CHECK: exit:
@@ -39,11 +38,10 @@ define void @int_iv_nsw(i64 %base, i64 %end) {
39
38
; CHECK-NEXT: entry:
40
39
; CHECK-NEXT: br label [[LOOP:%.*]]
41
40
; CHECK: loop:
42
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
43
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
41
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
42
+ ; CHECK-NEXT: [[IV2 :%.*]] = add nsw i64 [[IV ]], [[BASE] ]
44
43
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
45
44
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
46
- ; CHECK-NEXT: [[IV2_NEXT]] = add nsw i64 [[IV_NEXT]], [[BASE]]
47
45
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
48
46
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
49
47
; CHECK: exit:
@@ -72,11 +70,10 @@ define void @int_iv_commuted_add(i64 %base, i64 %end) {
72
70
; CHECK-NEXT: [[BASE2:%.*]] = mul i64 [[BASE]], 42
73
71
; CHECK-NEXT: br label [[LOOP:%.*]]
74
72
; CHECK: loop:
75
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE2]] , [[ENTRY:%.*]] ]
76
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
73
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
74
+ ; CHECK-NEXT: [[IV2 :%.*]] = add i64 [[IV ]], [[BASE2] ]
77
75
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
78
76
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
79
- ; CHECK-NEXT: [[IV2_NEXT]] = add i64 [[BASE2]], [[IV_NEXT]]
80
77
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
81
78
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
82
79
; CHECK: exit:
@@ -105,11 +102,10 @@ define void @int_iv_commuted_phi1(i64 %base, i64 %end) {
105
102
; CHECK-NEXT: entry:
106
103
; CHECK-NEXT: br label [[LOOP:%.*]]
107
104
; CHECK: loop:
108
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[BASE]] , [[ENTRY:%.*]] ], [ [[IV2_NEXT :%.*]], [[LOOP]] ]
109
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ 0, [[ENTRY]] ] , [ [[IV_NEXT:%.*]], [[LOOP]] ]
105
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ 0 , [[ENTRY:%.*]] ], [ [[IV_NEXT :%.*]], [[LOOP]] ]
106
+ ; CHECK-NEXT: [[IV2 :%.*]] = add i64 [[IV]] , [[BASE] ]
110
107
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
111
108
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
112
- ; CHECK-NEXT: [[IV2_NEXT]] = add i64 [[IV_NEXT]], [[BASE]]
113
109
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
114
110
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
115
111
; CHECK: exit:
@@ -137,11 +133,10 @@ define void @int_iv_commuted_phi2(i64 %base, i64 %end) {
137
133
; CHECK-NEXT: entry:
138
134
; CHECK-NEXT: br label [[LOOP:%.*]]
139
135
; CHECK: loop:
140
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
141
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
136
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
137
+ ; CHECK-NEXT: [[IV2 :%.*]] = add i64 [[IV ]], [[BASE] ]
142
138
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
143
139
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
144
- ; CHECK-NEXT: [[IV2_NEXT]] = add i64 [[IV_NEXT]], [[BASE]]
145
140
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
146
141
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
147
142
; CHECK: exit:
@@ -169,11 +164,10 @@ define void @int_iv_vector(<2 x i64> %base) {
169
164
; CHECK-NEXT: entry:
170
165
; CHECK-NEXT: br label [[LOOP:%.*]]
171
166
; CHECK: loop:
172
- ; CHECK-NEXT: [[IV2 :%.*]] = phi <2 x i64> [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
173
- ; CHECK-NEXT: [[IV :%.*]] = phi <2 x i64> [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ zeroinitializer, [[ENTRY]] ]
167
+ ; CHECK-NEXT: [[IV :%.*]] = phi <2 x i64> [ [[IV_NEXT :%.*]], [[LOOP]] ], [ zeroinitializer , [[ENTRY:%.*]] ]
168
+ ; CHECK-NEXT: [[IV2 :%.*]] = add <2 x i64> [[IV ]], [[BASE] ]
174
169
; CHECK-NEXT: call void @use.v2i64(<2 x i64> [[IV2]])
175
170
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw <2 x i64> [[IV]], <i64 4, i64 4>
176
- ; CHECK-NEXT: [[IV2_NEXT]] = add <2 x i64> [[IV_NEXT]], [[BASE]]
177
171
; CHECK-NEXT: [[CMP:%.*]] = call i1 @get.i1()
178
172
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
179
173
; CHECK: exit:
@@ -233,12 +227,11 @@ define void @int_iv_loop_variant_step(i64 %base, i64 %end) {
233
227
; CHECK-NEXT: entry:
234
228
; CHECK-NEXT: br label [[LOOP:%.*]]
235
229
; CHECK: loop:
236
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
237
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
230
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
231
+ ; CHECK-NEXT: [[IV2 :%.*]] = add nuw i64 [[IV ]], [[BASE] ]
238
232
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
239
233
; CHECK-NEXT: [[STEP:%.*]] = call i64 @get.i64()
240
234
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], [[STEP]]
241
- ; CHECK-NEXT: [[IV2_NEXT]] = add nuw i64 [[IV_NEXT]], [[BASE]]
242
235
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
243
236
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
244
237
; CHECK: exit:
@@ -267,11 +260,10 @@ define void @int_iv_xor(i64 %base, i64 %end) {
267
260
; CHECK-NEXT: entry:
268
261
; CHECK-NEXT: br label [[LOOP:%.*]]
269
262
; CHECK: loop:
270
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
271
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
263
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
264
+ ; CHECK-NEXT: [[IV2 :%.*]] = xor i64 [[IV ]], [[BASE] ]
272
265
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
273
266
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
274
- ; CHECK-NEXT: [[IV2_NEXT]] = xor i64 [[IV_NEXT]], [[BASE]]
275
267
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
276
268
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
277
269
; CHECK: exit:
@@ -299,11 +291,10 @@ define void @int_iv_or(i64 %base, i64 %end) {
299
291
; CHECK-NEXT: entry:
300
292
; CHECK-NEXT: br label [[LOOP:%.*]]
301
293
; CHECK: loop:
302
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
303
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
294
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
295
+ ; CHECK-NEXT: [[IV2 :%.*]] = or i64 [[IV ]], [[BASE] ]
304
296
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
305
297
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
306
- ; CHECK-NEXT: [[IV2_NEXT]] = or i64 [[IV_NEXT]], [[BASE]]
307
298
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
308
299
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
309
300
; CHECK: exit:
@@ -331,11 +322,10 @@ define void @int_iv_or_disjoint(i64 %base, i64 %end) {
331
322
; CHECK-NEXT: entry:
332
323
; CHECK-NEXT: br label [[LOOP:%.*]]
333
324
; CHECK: loop:
334
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
335
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
325
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
326
+ ; CHECK-NEXT: [[IV2 :%.*]] = or disjoint i64 [[IV ]], [[BASE] ]
336
327
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
337
328
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
338
- ; CHECK-NEXT: [[IV2_NEXT]] = or disjoint i64 [[IV_NEXT]], [[BASE]]
339
329
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
340
330
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
341
331
; CHECK: exit:
@@ -363,11 +353,10 @@ define void @int_iv_and(i64 %base, i64 %end) {
363
353
; CHECK-NEXT: entry:
364
354
; CHECK-NEXT: br label [[LOOP:%.*]]
365
355
; CHECK: loop:
366
- ; CHECK-NEXT: [[IV2 :%.*]] = phi i64 [ [[IV2_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
367
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ -1, [[ENTRY]] ]
356
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ -1 , [[ENTRY:%.*]] ]
357
+ ; CHECK-NEXT: [[IV2 :%.*]] = and i64 [[IV ]], [[BASE] ]
368
358
; CHECK-NEXT: call void @use.i64(i64 [[IV2]])
369
359
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
370
- ; CHECK-NEXT: [[IV2_NEXT]] = and i64 [[IV_NEXT]], [[BASE]]
371
360
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
372
361
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
373
362
; CHECK: exit:
@@ -523,11 +512,10 @@ define void @ptr_iv_inbounds(ptr %base, i64 %end) {
523
512
; CHECK-NEXT: entry:
524
513
; CHECK-NEXT: br label [[LOOP:%.*]]
525
514
; CHECK: loop:
526
- ; CHECK-NEXT: [[IV_PTR :%.*]] = phi ptr [ [[IV_PTR_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
527
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.*]], [[LOOP]] ], [ 0, [[ENTRY]] ]
515
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
516
+ ; CHECK-NEXT: [[IV_PTR :%.*]] = getelementptr inbounds i8, ptr [[BASE]], i64 [[IV] ]
528
517
; CHECK-NEXT: call void @use.p0(ptr [[IV_PTR]])
529
518
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
530
- ; CHECK-NEXT: [[IV_PTR_NEXT]] = getelementptr inbounds i8, ptr [[BASE]], i64 [[IV_NEXT]]
531
519
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
532
520
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
533
521
; CHECK: exit:
@@ -555,11 +543,10 @@ define void @ptr_iv_no_inbounds(ptr %base, i64 %end) {
555
543
; CHECK-NEXT: entry:
556
544
; CHECK-NEXT: br label [[LOOP:%.*]]
557
545
; CHECK: loop:
558
- ; CHECK-NEXT: [[IV_PTR :%.*]] = phi ptr [ [[IV_PTR_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
559
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
546
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
547
+ ; CHECK-NEXT: [[IV_PTR :%.*]] = getelementptr i8, ptr [[BASE ]], i64 [[IV] ]
560
548
; CHECK-NEXT: call void @use.p0(ptr [[IV_PTR]])
561
549
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
562
- ; CHECK-NEXT: [[IV_PTR_NEXT]] = getelementptr i8, ptr [[BASE]], i64 [[IV_NEXT]]
563
550
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
564
551
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
565
552
; CHECK: exit:
@@ -587,11 +574,10 @@ define void @ptr_iv_non_i8_type(ptr %base, i64 %end) {
587
574
; CHECK-NEXT: entry:
588
575
; CHECK-NEXT: br label [[LOOP:%.*]]
589
576
; CHECK: loop:
590
- ; CHECK-NEXT: [[IV_PTR :%.*]] = phi ptr [ [[IV_PTR_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
591
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ 0, [[ENTRY]] ]
577
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
578
+ ; CHECK-NEXT: [[IV_PTR :%.*]] = getelementptr i32, ptr [[BASE ]], i64 [[IV] ]
592
579
; CHECK-NEXT: call void @use.p0(ptr [[IV_PTR]])
593
580
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
594
- ; CHECK-NEXT: [[IV_PTR_NEXT]] = getelementptr i32, ptr [[BASE]], i64 [[IV_NEXT]]
595
581
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
596
582
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
597
583
; CHECK: exit:
@@ -619,11 +605,10 @@ define void @ptr_iv_vector(<2 x ptr> %base, i64 %end) {
619
605
; CHECK-NEXT: entry:
620
606
; CHECK-NEXT: br label [[LOOP:%.*]]
621
607
; CHECK: loop:
622
- ; CHECK-NEXT: [[IV_PTR :%.*]] = phi <2 x ptr> [ [[IV_PTR_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
623
- ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT:%.*]], [[LOOP]] ], [ 0, [[ENTRY]] ]
608
+ ; CHECK-NEXT: [[IV :%.*]] = phi i64 [ [[IV_NEXT :%.*]], [[LOOP]] ], [ 0 , [[ENTRY:%.*]] ]
609
+ ; CHECK-NEXT: [[IV_PTR :%.*]] = getelementptr inbounds i8, <2 x ptr> [[BASE]], i64 [[IV] ]
624
610
; CHECK-NEXT: call void @use.v2p0(<2 x ptr> [[IV_PTR]])
625
611
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 4
626
- ; CHECK-NEXT: [[IV_PTR_NEXT]] = getelementptr inbounds i8, <2 x ptr> [[BASE]], i64 [[IV_NEXT]]
627
612
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[IV_NEXT]], [[END]]
628
613
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
629
614
; CHECK: exit:
@@ -651,11 +636,10 @@ define void @ptr_iv_vector2(<2 x ptr> %base) {
651
636
; CHECK-NEXT: entry:
652
637
; CHECK-NEXT: br label [[LOOP:%.*]]
653
638
; CHECK: loop:
654
- ; CHECK-NEXT: [[IV_PTR :%.*]] = phi <2 x ptr > [ [[IV_PTR_NEXT :%.*]], [[LOOP]] ], [ [[BASE]] , [[ENTRY:%.*]] ]
655
- ; CHECK-NEXT: [[IV :%.*]] = phi <2 x i64 > [ [[IV_NEXT:%.* ]], [[LOOP]] ], [ zeroinitializer, [[ENTRY]] ]
639
+ ; CHECK-NEXT: [[IV :%.*]] = phi <2 x i64 > [ [[IV_NEXT :%.*]], [[LOOP]] ], [ zeroinitializer , [[ENTRY:%.*]] ]
640
+ ; CHECK-NEXT: [[IV_PTR :%.*]] = getelementptr i8, <2 x ptr > [[BASE ]], <2 x i64> [[IV] ]
656
641
; CHECK-NEXT: call void @use.v2p0(<2 x ptr> [[IV_PTR]])
657
642
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw <2 x i64> [[IV]], <i64 4, i64 4>
658
- ; CHECK-NEXT: [[IV_PTR_NEXT]] = getelementptr i8, <2 x ptr> [[BASE]], <2 x i64> [[IV_NEXT]]
659
643
; CHECK-NEXT: [[CMP:%.*]] = call i1 @get.i1()
660
644
; CHECK-NEXT: br i1 [[CMP]], label [[EXIT:%.*]], label [[LOOP]]
661
645
; CHECK: exit:
0 commit comments