@@ -213,19 +213,19 @@ define void @vector_reverse_i64(ptr nocapture noundef writeonly %A, ptr nocaptur
213
213
; CHECK-NEXT: EMIT branch-on-cond vp<[[CMP]]>
214
214
; CHECK-NEXT: Successor(s): ir-bb<for.cond.cleanup.loopexit>, ir-bb<scalar.ph>
215
215
; CHECK-EMPTY:
216
+ ; CHECK-NEXT: ir-bb<for.cond.cleanup.loopexit>:
217
+ ; CHECK-NEXT: No successors
218
+ ; CHECK-EMPTY:
216
219
; CHECK-NEXT: ir-bb<scalar.ph>:
217
- ; CHECK-NEXT: IR [[RESUME_1:%.+]] = phi i64
218
- ; CHECK-NEXT: IR [[RESUME_2:%.+]] = phi i32
220
+ ; CHECK-NEXT: EMIT vp< [[RESUME_1:%.+]]> = resume- phi ir<%ind.end>, ir<%0>
221
+ ; CHECK-NEXT: EMIT vp< [[RESUME_2:%.+]]>.1 = resume- phi ir<%ind.end3>, ir<%n>
219
222
; CHECK-NEXT: Successor(s): ir-bb<for.body>
220
223
; CHECK-EMPTY:
221
224
; CHECK-NEXT: ir-bb<for.body>:
222
- ; CHECK-NEXT: IR %indvars.iv = phi i64 [ [[RESUME_1]] , %scalar.ph ], [ %indvars.iv.next, %for.body ]
223
- ; CHECK-NEXT: IR %i.0.in8 = phi i32 [ [[RESUME_2]] , %scalar.ph ], [ %i.0, %for.body ]
225
+ ; CHECK-NEXT: IR %indvars.iv = phi i64 [ %0 , %scalar.ph ], [ %indvars.iv.next, %for.body ] (extra operand: vp<[[RESUME_1]]> from ir-bb<scalar.ph>)
226
+ ; CHECK-NEXT: IR %i.0.in8 = phi i32 [ %n , %scalar.ph ], [ %i.0, %for.body ] (extra operand: vp<[[RESUME_2]]>.1 from ir-bb<scalar.ph>)
224
227
; CHECK: IR %indvars.iv.next = add nsw i64 %indvars.iv, -1
225
228
; CHECK-NEXT: No successors
226
- ; CHECK-EMPTY:
227
- ; CHECK-NEXT: ir-bb<for.cond.cleanup.loopexit>:
228
- ; CHECK-NEXT: No successors
229
229
; CHECK-NEXT: }
230
230
; CHECK: LV: Loop does not require scalar epilogue
231
231
;
@@ -460,19 +460,19 @@ define void @vector_reverse_f32(ptr nocapture noundef writeonly %A, ptr nocaptur
460
460
; CHECK-NEXT: EMIT branch-on-cond vp<[[CMP]]>
461
461
; CHECK-NEXT: Successor(s): ir-bb<for.cond.cleanup.loopexit>, ir-bb<scalar.ph>
462
462
; CHECK-EMPTY:
463
+ ; CHECK-NEXT: ir-bb<for.cond.cleanup.loopexit>:
464
+ ; CHECK-NEXT: No successors
465
+ ; CHECK-EMPTY:
463
466
; CHECK-NEXT: ir-bb<scalar.ph>:
464
- ; CHECK-NEXT: IR [[RESUME_1:%.+]] = phi i64
465
- ; CHECK-NEXT: IR [[RESUME_2:%.+]] = phi i32
467
+ ; CHECK-NEXT: EMIT vp< [[RESUME_1:%.+]]> = resume- phi ir<%ind.end>, ir<%0>
468
+ ; CHECK-NEXT: EMIT vp< [[RESUME_2:%.+]]>.1 = resume- phi ir<%ind.end3>, ir<%n>
466
469
; CHECK-NEXT: Successor(s): ir-bb<for.body>
467
470
; CHECK-EMPTY:
468
471
; CHECK-NEXT: ir-bb<for.body>:
469
- ; CHECK-NEXT: IR %indvars.iv = phi i64 [ [[RESUME_1]] , %scalar.ph ], [ %indvars.iv.next, %for.body ]
470
- ; CHECK-NEXT: IR %i.0.in8 = phi i32 [ [[RESUME_2]] , %scalar.ph ], [ %i.0, %for.body ]
472
+ ; CHECK-NEXT: IR %indvars.iv = phi i64 [ %0 , %scalar.ph ], [ %indvars.iv.next, %for.body ] (extra operand: vp<[[RESUME_1]]> from ir-bb<scalar.ph>)
473
+ ; CHECK-NEXT: IR %i.0.in8 = phi i32 [ %n , %scalar.ph ], [ %i.0, %for.body ] (extra operand: vp<[[RESUME_2]]>.1 from ir-bb<scalar.ph>)
471
474
; CHECK: IR %indvars.iv.next = add nsw i64 %indvars.iv, -1
472
475
; CHECK-NEXT: No successors
473
- ; CHECK-EMPTY:
474
- ; CHECK-NEXT: ir-bb<for.cond.cleanup.loopexit>:
475
- ; CHECK-NEXT: No successors
476
476
; CHECK-NEXT: }
477
477
; CHECK: LV: Loop does not require scalar epilogue
478
478
;
0 commit comments