@@ -3271,53 +3271,55 @@ define i32 @sink_into_replication_region_multiple(ptr %x, i32 %y) {
3271
3271
; UNROLL-NO-VF-NEXT: [[TRIP_COUNT_MINUS_1:%.*]] = sub i32 [[TMP1]], 1
3272
3272
; UNROLL-NO-VF-NEXT: br label [[VECTOR_BODY:%.*]]
3273
3273
; UNROLL-NO-VF: vector.body:
3274
- ; UNROLL-NO-VF-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[PRED_STORE_CONTINUE6 :%.*]] ]
3275
- ; UNROLL-NO-VF-NEXT: [[VECTOR_RECUR:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP11 :%.*]], [[PRED_STORE_CONTINUE6 ]] ]
3276
- ; UNROLL-NO-VF-NEXT: [[VEC_PHI:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP12 :%.*]], [[PRED_STORE_CONTINUE6 ]] ]
3277
- ; UNROLL-NO-VF-NEXT: [[VEC_PHI2:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP13 :%.*]], [[PRED_STORE_CONTINUE6 ]] ]
3274
+ ; UNROLL-NO-VF-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[PRED_STORE_CONTINUE7 :%.*]] ]
3275
+ ; UNROLL-NO-VF-NEXT: [[VECTOR_RECUR:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP9 :%.*]], [[PRED_STORE_CONTINUE7 ]] ]
3276
+ ; UNROLL-NO-VF-NEXT: [[VEC_PHI:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP10 :%.*]], [[PRED_STORE_CONTINUE7 ]] ]
3277
+ ; UNROLL-NO-VF-NEXT: [[VEC_PHI2:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[TMP11 :%.*]], [[PRED_STORE_CONTINUE7 ]] ]
3278
3278
; UNROLL-NO-VF-NEXT: [[OFFSET_IDX:%.*]] = sub i32 [[Y]], [[INDEX]]
3279
3279
; UNROLL-NO-VF-NEXT: [[TMP2:%.*]] = add i32 [[OFFSET_IDX]], 0
3280
3280
; UNROLL-NO-VF-NEXT: [[TMP3:%.*]] = add i32 [[OFFSET_IDX]], -1
3281
- ; UNROLL-NO-VF-NEXT: [[TMP4 :%.*]] = add i32 [[INDEX]], 0
3282
- ; UNROLL-NO-VF-NEXT: [[TMP5 :%.*]] = add i32 [[INDEX]], 1
3283
- ; UNROLL-NO-VF-NEXT: [[TMP6 :%.*]] = icmp ule i32 [[TMP4 ]], [[TRIP_COUNT_MINUS_1]]
3284
- ; UNROLL-NO-VF-NEXT: [[TMP7 :%.*]] = icmp ule i32 [[TMP5 ]], [[TRIP_COUNT_MINUS_1]]
3285
- ; UNROLL-NO-VF-NEXT: br i1 [[TMP6 ]], label [[PRED_UDIV_IF:%.*]], label [[PRED_UDIV_CONTINUE:%.*]]
3281
+ ; UNROLL-NO-VF-NEXT: [[VEC_IV :%.*]] = add i32 [[INDEX]], 0
3282
+ ; UNROLL-NO-VF-NEXT: [[VEC_IV3 :%.*]] = add i32 [[INDEX]], 1
3283
+ ; UNROLL-NO-VF-NEXT: [[TMP4 :%.*]] = icmp ule i32 [[VEC_IV ]], [[TRIP_COUNT_MINUS_1]]
3284
+ ; UNROLL-NO-VF-NEXT: [[TMP5 :%.*]] = icmp ule i32 [[VEC_IV3 ]], [[TRIP_COUNT_MINUS_1]]
3285
+ ; UNROLL-NO-VF-NEXT: br i1 [[TMP4 ]], label [[PRED_UDIV_IF:%.*]], label [[PRED_UDIV_CONTINUE:%.*]]
3286
3286
; UNROLL-NO-VF: pred.udiv.if:
3287
- ; UNROLL-NO-VF-NEXT: [[TMP8 :%.*]] = udiv i32 219220132, [[TMP2]]
3287
+ ; UNROLL-NO-VF-NEXT: [[TMP6 :%.*]] = udiv i32 219220132, [[TMP2]]
3288
3288
; UNROLL-NO-VF-NEXT: br label [[PRED_UDIV_CONTINUE]]
3289
3289
; UNROLL-NO-VF: pred.udiv.continue:
3290
- ; UNROLL-NO-VF-NEXT: [[TMP9 :%.*]] = phi i32 [ poison, [[VECTOR_BODY]] ], [ [[TMP8 ]], [[PRED_UDIV_IF]] ]
3291
- ; UNROLL-NO-VF-NEXT: br i1 [[TMP7 ]], label [[PRED_UDIV_IF3 :%.*]], label [[PRED_UDIV_CONTINUE4 :%.*]]
3292
- ; UNROLL-NO-VF: pred.udiv.if3 :
3293
- ; UNROLL-NO-VF-NEXT: [[TMP10 :%.*]] = udiv i32 219220132, [[TMP3]]
3294
- ; UNROLL-NO-VF-NEXT: br label [[PRED_UDIV_CONTINUE4 ]]
3295
- ; UNROLL-NO-VF: pred.udiv.continue4 :
3296
- ; UNROLL-NO-VF-NEXT: [[TMP11 ]] = phi i32 [ poison, [[PRED_UDIV_CONTINUE]] ], [ [[TMP10 ]], [[PRED_UDIV_IF3 ]] ]
3297
- ; UNROLL-NO-VF-NEXT: [[TMP12 ]] = add i32 [[VEC_PHI]], [[VECTOR_RECUR]]
3298
- ; UNROLL-NO-VF-NEXT: [[TMP13 ]] = add i32 [[VEC_PHI2]], [[TMP9 ]]
3299
- ; UNROLL-NO-VF-NEXT: br i1 [[TMP6 ]], label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
3290
+ ; UNROLL-NO-VF-NEXT: [[TMP7 :%.*]] = phi i32 [ poison, [[VECTOR_BODY]] ], [ [[TMP6 ]], [[PRED_UDIV_IF]] ]
3291
+ ; UNROLL-NO-VF-NEXT: br i1 [[TMP5 ]], label [[PRED_UDIV_IF4 :%.*]], label [[PRED_UDIV_CONTINUE5 :%.*]]
3292
+ ; UNROLL-NO-VF: pred.udiv.if4 :
3293
+ ; UNROLL-NO-VF-NEXT: [[TMP8 :%.*]] = udiv i32 219220132, [[TMP3]]
3294
+ ; UNROLL-NO-VF-NEXT: br label [[PRED_UDIV_CONTINUE5 ]]
3295
+ ; UNROLL-NO-VF: pred.udiv.continue5 :
3296
+ ; UNROLL-NO-VF-NEXT: [[TMP9 ]] = phi i32 [ poison, [[PRED_UDIV_CONTINUE]] ], [ [[TMP8 ]], [[PRED_UDIV_IF4 ]] ]
3297
+ ; UNROLL-NO-VF-NEXT: [[TMP10 ]] = add i32 [[VEC_PHI]], [[VECTOR_RECUR]]
3298
+ ; UNROLL-NO-VF-NEXT: [[TMP11 ]] = add i32 [[VEC_PHI2]], [[TMP7 ]]
3299
+ ; UNROLL-NO-VF-NEXT: br i1 [[TMP4 ]], label [[PRED_STORE_IF:%.*]], label [[PRED_STORE_CONTINUE:%.*]]
3300
3300
; UNROLL-NO-VF: pred.store.if:
3301
- ; UNROLL-NO-VF-NEXT: [[TMP14:%.*]] = getelementptr inbounds i32, ptr [[X:%.*]], i32 [[TMP4]]
3302
- ; UNROLL-NO-VF-NEXT: store i32 [[TMP2]], ptr [[TMP14]], align 4
3301
+ ; UNROLL-NO-VF-NEXT: [[TMP12:%.*]] = add i32 [[INDEX]], 0
3302
+ ; UNROLL-NO-VF-NEXT: [[TMP13:%.*]] = getelementptr inbounds i32, ptr [[X:%.*]], i32 [[TMP12]]
3303
+ ; UNROLL-NO-VF-NEXT: store i32 [[TMP2]], ptr [[TMP13]], align 4
3303
3304
; UNROLL-NO-VF-NEXT: br label [[PRED_STORE_CONTINUE]]
3304
3305
; UNROLL-NO-VF: pred.store.continue:
3305
- ; UNROLL-NO-VF-NEXT: br i1 [[TMP7]], label [[PRED_STORE_IF5:%.*]], label [[PRED_STORE_CONTINUE6]]
3306
- ; UNROLL-NO-VF: pred.store.if5:
3307
- ; UNROLL-NO-VF-NEXT: [[TMP15:%.*]] = getelementptr inbounds i32, ptr [[X]], i32 [[TMP5]]
3306
+ ; UNROLL-NO-VF-NEXT: br i1 [[TMP5]], label [[PRED_STORE_IF6:%.*]], label [[PRED_STORE_CONTINUE7]]
3307
+ ; UNROLL-NO-VF: pred.store.if6:
3308
+ ; UNROLL-NO-VF-NEXT: [[TMP14:%.*]] = add i32 [[INDEX]], 1
3309
+ ; UNROLL-NO-VF-NEXT: [[TMP15:%.*]] = getelementptr inbounds i32, ptr [[X]], i32 [[TMP14]]
3308
3310
; UNROLL-NO-VF-NEXT: store i32 [[TMP3]], ptr [[TMP15]], align 4
3309
- ; UNROLL-NO-VF-NEXT: br label [[PRED_STORE_CONTINUE6 ]]
3310
- ; UNROLL-NO-VF: pred.store.continue6 :
3311
- ; UNROLL-NO-VF-NEXT: [[TMP16:%.*]] = select i1 [[TMP6 ]], i32 [[TMP12 ]], i32 [[VEC_PHI]]
3312
- ; UNROLL-NO-VF-NEXT: [[TMP17:%.*]] = select i1 [[TMP7 ]], i32 [[TMP13 ]], i32 [[VEC_PHI2]]
3311
+ ; UNROLL-NO-VF-NEXT: br label [[PRED_STORE_CONTINUE7 ]]
3312
+ ; UNROLL-NO-VF: pred.store.continue7 :
3313
+ ; UNROLL-NO-VF-NEXT: [[TMP16:%.*]] = select i1 [[TMP4 ]], i32 [[TMP10 ]], i32 [[VEC_PHI]]
3314
+ ; UNROLL-NO-VF-NEXT: [[TMP17:%.*]] = select i1 [[TMP5 ]], i32 [[TMP11 ]], i32 [[VEC_PHI2]]
3313
3315
; UNROLL-NO-VF-NEXT: [[INDEX_NEXT]] = add i32 [[INDEX]], 2
3314
3316
; UNROLL-NO-VF-NEXT: [[TMP18:%.*]] = icmp eq i32 [[INDEX_NEXT]], [[N_VEC]]
3315
3317
; UNROLL-NO-VF-NEXT: br i1 [[TMP18]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !prof [[PROF27]], !llvm.loop [[LOOP31:![0-9]+]]
3316
3318
; UNROLL-NO-VF: middle.block:
3317
3319
; UNROLL-NO-VF-NEXT: [[BIN_RDX:%.*]] = add i32 [[TMP17]], [[TMP16]]
3318
3320
; UNROLL-NO-VF-NEXT: br i1 true, label [[BB1:%.*]], label [[SCALAR_PH]]
3319
3321
; UNROLL-NO-VF: scalar.ph:
3320
- ; UNROLL-NO-VF-NEXT: [[SCALAR_RECUR_INIT:%.*]] = phi i32 [ 0, [[BB:%.*]] ], [ [[TMP11 ]], [[MIDDLE_BLOCK]] ]
3322
+ ; UNROLL-NO-VF-NEXT: [[SCALAR_RECUR_INIT:%.*]] = phi i32 [ 0, [[BB:%.*]] ], [ [[TMP9 ]], [[MIDDLE_BLOCK]] ]
3321
3323
; UNROLL-NO-VF-NEXT: [[BC_RESUME_VAL:%.*]] = phi i32 [ [[IND_END]], [[MIDDLE_BLOCK]] ], [ [[Y]], [[BB]] ]
3322
3324
; UNROLL-NO-VF-NEXT: [[BC_RESUME_VAL1:%.*]] = phi i32 [ [[N_VEC]], [[MIDDLE_BLOCK]] ], [ 0, [[BB]] ]
3323
3325
; UNROLL-NO-VF-NEXT: [[BC_MERGE_RDX:%.*]] = phi i32 [ 0, [[BB]] ], [ [[BIN_RDX]], [[MIDDLE_BLOCK]] ]
0 commit comments