@@ -28,10 +28,10 @@ define void @test1_pr58811() {
2828; CHECK: vector.body:
2929; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
3030; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
31- ; CHECK-NEXT: [[TMP10 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
32- ; CHECK-NEXT: br i1 [[TMP10 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
31+ ; CHECK-NEXT: [[TMP2 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
32+ ; CHECK-NEXT: br i1 [[TMP2 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
3333; CHECK: middle.block:
34- ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = mul i32 195 , [[INDUCTION_IV_LCSSA]]
34+ ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = sub i32 [[IND_END]] , [[INDUCTION_IV_LCSSA]]
3535; CHECK-NEXT: br i1 false, label [[LOOP_3_PREHEADER:%.*]], label [[SCALAR_PH]]
3636; CHECK: scalar.ph:
3737; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_2_PREHEADER]] ]
@@ -123,28 +123,28 @@ define void @test2_pr58811() {
123123; CHECK: vector.body:
124124; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
125125; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
126- ; CHECK-NEXT: [[TMP10 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
127- ; CHECK-NEXT: br i1 [[TMP10 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
126+ ; CHECK-NEXT: [[TMP2 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
127+ ; CHECK-NEXT: br i1 [[TMP2 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
128128; CHECK: middle.block:
129- ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = mul i32 195 , [[INDUCTION_IV_LCSSA]]
129+ ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = sub i32 [[IND_END]] , [[INDUCTION_IV_LCSSA]]
130130; CHECK-NEXT: br i1 false, label [[LOOP_4_PREHEADER:%.*]], label [[SCALAR_PH]]
131131; CHECK: scalar.ph:
132132; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
133133; CHECK-NEXT: [[BC_RESUME_VAL1:%.*]] = phi i32 [ [[IND_END]], [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
134134; CHECK-NEXT: br label [[LOOP_3:%.*]]
135135; CHECK: loop.3:
136- ; CHECK-NEXT: [[INT16_TINDARRAYSAFEVAR_186_0747_1 :%.*]] = phi i16 [ [[INC_1:%.*]], [[LOOP_3]] ], [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ]
137- ; CHECK-NEXT: [[UINT32_TVAR_177_2745_1 :%.*]] = phi i32 [ [[SUB93_1:%.*]], [[LOOP_3]] ], [ [[BC_RESUME_VAL1]], [[SCALAR_PH]] ]
138- ; CHECK-NEXT: [[SUB93_1]] = sub i32 [[UINT32_TVAR_177_2745_1 ]], [[IV_2_LCSSA]]
139- ; CHECK-NEXT: [[INC_1]] = add i16 [[INT16_TINDARRAYSAFEVAR_186_0747_1 ]], 1
140- ; CHECK-NEXT: [[CMP88_1:%.*]] = icmp ult i16 [[INT16_TINDARRAYSAFEVAR_186_0747_1 ]], 198
136+ ; CHECK-NEXT: [[IV_4 :%.*]] = phi i16 [ [[INC_1:%.*]], [[LOOP_3]] ], [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ]
137+ ; CHECK-NEXT: [[IV_5 :%.*]] = phi i32 [ [[SUB93_1:%.*]], [[LOOP_3]] ], [ [[BC_RESUME_VAL1]], [[SCALAR_PH]] ]
138+ ; CHECK-NEXT: [[SUB93_1]] = sub i32 [[IV_5 ]], [[IV_2_LCSSA]]
139+ ; CHECK-NEXT: [[INC_1]] = add i16 [[IV_4 ]], 1
140+ ; CHECK-NEXT: [[CMP88_1:%.*]] = icmp ult i16 [[IV_4 ]], 198
141141; CHECK-NEXT: br i1 [[CMP88_1]], label [[LOOP_3]], label [[LOOP_4_PREHEADER]], !llvm.loop [[LOOP5:![0-9]+]]
142142; CHECK: loop.4.preheader:
143- ; CHECK-NEXT: [[UINT32_TVAR_177_2745_1_LCSSA :%.*]] = phi i32 [ [[UINT32_TVAR_177_2745_1 ]], [[LOOP_3]] ], [ [[IND_ESCAPE]], [[MIDDLE_BLOCK]] ]
143+ ; CHECK-NEXT: [[IV_5_LCSSA :%.*]] = phi i32 [ [[IV_5 ]], [[LOOP_3]] ], [ [[IND_ESCAPE]], [[MIDDLE_BLOCK]] ]
144144; CHECK-NEXT: br label [[LOOP_4]]
145145; CHECK: loop.4:
146- ; CHECK-NEXT: [[UINT32_TVAR_177_2745_2 :%.*]] = phi i32 [ [[SUB93_2]], [[LOOP_4]] ], [ 0, [[LOOP_4_PREHEADER]] ]
147- ; CHECK-NEXT: [[SUB93_2]] = sub i32 [[UINT32_TVAR_177_2745_2 ]], [[UINT32_TVAR_177_2745_1_LCSSA ]]
146+ ; CHECK-NEXT: [[IV_6 :%.*]] = phi i32 [ [[SUB93_2]], [[LOOP_4]] ], [ 0, [[LOOP_4_PREHEADER]] ]
147+ ; CHECK-NEXT: [[SUB93_2]] = sub i32 [[IV_6 ]], [[IV_5_LCSSA ]]
148148; CHECK-NEXT: br i1 false, label [[LOOP_4]], label [[LOOP_1_HEADER_LOOPEXIT]]
149149;
150150entry:
@@ -201,10 +201,10 @@ define void @test3_pr58811() {
201201; CHECK: vector.body:
202202; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
203203; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
204- ; CHECK-NEXT: [[TMP12 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
205- ; CHECK-NEXT: br i1 [[TMP12 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
204+ ; CHECK-NEXT: [[TMP4 :%.*]] = icmp eq i32 [[INDEX_NEXT]], 196
205+ ; CHECK-NEXT: br i1 [[TMP4 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
206206; CHECK: middle.block:
207- ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = mul i32 195 , [[TMP3]]
207+ ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = sub i32 [[IND_END]] , [[TMP3]]
208208; CHECK-NEXT: br i1 false, label [[LOOP_4_PREHEADER:%.*]], label [[SCALAR_PH]]
209209; CHECK: scalar.ph:
210210; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
0 commit comments