@@ -28,10 +28,10 @@ define void @test1_pr58811() {
28
28
; CHECK: vector.body:
29
29
; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
30
30
; 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]+]]
33
33
; 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]]
35
35
; CHECK-NEXT: br i1 false, label [[LOOP_3_PREHEADER:%.*]], label [[SCALAR_PH]]
36
36
; CHECK: scalar.ph:
37
37
; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_2_PREHEADER]] ]
@@ -123,28 +123,28 @@ define void @test2_pr58811() {
123
123
; CHECK: vector.body:
124
124
; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
125
125
; 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]+]]
128
128
; 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]]
130
130
; CHECK-NEXT: br i1 false, label [[LOOP_4_PREHEADER:%.*]], label [[SCALAR_PH]]
131
131
; CHECK: scalar.ph:
132
132
; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
133
133
; CHECK-NEXT: [[BC_RESUME_VAL1:%.*]] = phi i32 [ [[IND_END]], [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
134
134
; CHECK-NEXT: br label [[LOOP_3:%.*]]
135
135
; 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
141
141
; CHECK-NEXT: br i1 [[CMP88_1]], label [[LOOP_3]], label [[LOOP_4_PREHEADER]], !llvm.loop [[LOOP5:![0-9]+]]
142
142
; 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]] ]
144
144
; CHECK-NEXT: br label [[LOOP_4]]
145
145
; 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 ]]
148
148
; CHECK-NEXT: br i1 false, label [[LOOP_4]], label [[LOOP_1_HEADER_LOOPEXIT]]
149
149
;
150
150
entry:
@@ -201,10 +201,10 @@ define void @test3_pr58811() {
201
201
; CHECK: vector.body:
202
202
; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
203
203
; 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]+]]
206
206
; CHECK: middle.block:
207
- ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = mul i32 195 , [[TMP3]]
207
+ ; CHECK-NEXT: [[IND_ESCAPE:%.*]] = sub i32 [[IND_END]] , [[TMP3]]
208
208
; CHECK-NEXT: br i1 false, label [[LOOP_4_PREHEADER:%.*]], label [[SCALAR_PH]]
209
209
; CHECK: scalar.ph:
210
210
; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i16 [ 196, [[MIDDLE_BLOCK]] ], [ 0, [[LOOP_3_PREHEADER]] ]
0 commit comments