Skip to content

Commit 07d2c2c

Browse files
committed
Update tests
1 parent 14a0c0d commit 07d2c2c

File tree

2 files changed

+20
-65
lines changed

2 files changed

+20
-65
lines changed

llvm/test/CodeGen/RISCV/O3-pipeline.ll

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@
6868
; CHECK-NEXT: Scalarize Masked Memory Intrinsics
6969
; CHECK-NEXT: Expand reduction intrinsics
7070
; CHECK-NEXT: Natural Loop Information
71-
; CHECK-NEXT: Scalar Evolution Analysis
72-
; CHECK-NEXT: Loop Pass Manager
73-
; CHECK-NEXT: EVL-based Induction Variables Simplify
7471
; CHECK-NEXT: Type Promotion
7572
; CHECK-NEXT: CodeGen Prepare
7673
; CHECK-NEXT: Dominator Tree Construction

llvm/test/CodeGen/RISCV/evl-iv-simplify.ll

Lines changed: 20 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,6 @@ define void @simple(ptr noalias %a, ptr noalias %b, <vscale x 4 x i32> %c, i64 %
2020
; CHECK-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], [[TMP8]]
2121
; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 [[N_RND_UP]], [[TMP5]]
2222
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
23-
; CHECK-NEXT: [[TMP9:%.*]] = call i64 @llvm.vscale.i64()
24-
; CHECK-NEXT: [[TMP10:%.*]] = mul i64 [[TMP9]], 4
25-
; CHECK-NEXT: [[TMP22:%.*]] = udiv i64 [[N_RND_UP]], [[TMP10]]
26-
; CHECK-NEXT: [[TMP23:%.*]] = shl nuw nsw i64 [[TMP22]], 2
27-
; CHECK-NEXT: [[TMP24:%.*]] = sub i64 4, [[TMP23]]
28-
; CHECK-NEXT: [[TMP25:%.*]] = mul i64 [[TMP24]], [[TMP9]]
29-
; CHECK-NEXT: [[TMP15:%.*]] = sub i64 0, [[TMP25]]
30-
; CHECK-NEXT: [[TMP16:%.*]] = udiv i64 [[TMP15]], [[TMP10]]
31-
; CHECK-NEXT: [[TMP26:%.*]] = mul i64 [[TMP16]], [[TMP9]]
32-
; CHECK-NEXT: [[TMP27:%.*]] = shl i64 [[TMP26]], 2
3323
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
3424
; CHECK: vector.body:
3525
; CHECK-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
@@ -38,15 +28,15 @@ define void @simple(ptr noalias %a, ptr noalias %b, <vscale x 4 x i32> %c, i64 %
3828
; CHECK-NEXT: [[TMP13:%.*]] = add i64 [[EVL_BASED_IV]], 0
3929
; CHECK-NEXT: [[TMP14:%.*]] = getelementptr inbounds i32, ptr [[B]], i64 [[TMP13]]
4030
; CHECK-NEXT: [[TMP17:%.*]] = getelementptr inbounds i32, ptr [[TMP14]], i32 0
41-
; CHECK-NEXT: [[VP_OP_LOAD1:%.*]] = call <vscale x 4 x i32> @llvm.vp.load.nxv4i32.p0(ptr align 4 [[TMP17]], <vscale x 4 x i1> shufflevector (<vscale x 4 x i1> insertelement (<vscale x 4 x i1> poison, i1 true, i64 0), <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer), i32 [[TMP12]])
31+
; CHECK-NEXT: [[VP_OP_LOAD1:%.*]] = call <vscale x 4 x i32> @llvm.vp.load.nxv4i32.p0(ptr align 4 [[TMP17]], <vscale x 4 x i1> splat (i1 true), i32 [[TMP12]])
4232
; CHECK-NEXT: [[TMP18:%.*]] = add nsw <vscale x 4 x i32> [[C]], [[VP_OP_LOAD1]]
4333
; CHECK-NEXT: [[TMP19:%.*]] = getelementptr inbounds i32, ptr [[A]], i64 [[TMP13]]
4434
; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds i32, ptr [[TMP19]], i32 0
45-
; CHECK-NEXT: call void @llvm.vp.store.nxv4i32.p0(<vscale x 4 x i32> [[TMP18]], ptr align 4 [[TMP20]], <vscale x 4 x i1> shufflevector (<vscale x 4 x i1> insertelement (<vscale x 4 x i1> poison, i1 true, i64 0), <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer), i32 [[TMP12]])
35+
; CHECK-NEXT: call void @llvm.vp.store.nxv4i32.p0(<vscale x 4 x i32> [[TMP18]], ptr align 4 [[TMP20]], <vscale x 4 x i1> splat (i1 true), i32 [[TMP12]])
4636
; CHECK-NEXT: [[TMP21:%.*]] = zext i32 [[TMP12]] to i64
4737
; CHECK-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP21]], [[EVL_BASED_IV]]
48-
; CHECK-NEXT: [[TMP28:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP27]]
49-
; CHECK-NEXT: br i1 [[TMP28]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
38+
; CHECK-NEXT: [[TMP22:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], [[N]]
39+
; CHECK-NEXT: br i1 [[TMP22]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
5040
; CHECK: middle.block:
5141
; CHECK-NEXT: br i1 true, label [[FOR_COND_CLEANUP:%.*]], label [[SCALAR_PH]]
5242
; CHECK: scalar.ph:
@@ -75,20 +65,6 @@ define void @simple(ptr noalias %a, ptr noalias %b, <vscale x 4 x i32> %c, i64 %
7565
; LOOP-DEL-NEXT: [[TMP3:%.*]] = icmp ult i64 [[TMP0]], [[TMP2]]
7666
; LOOP-DEL-NEXT: br i1 [[TMP3]], label [[FOR_BODY:%.*]], label [[VECTOR_PH:%.*]]
7767
; LOOP-DEL: vector.ph:
78-
; LOOP-DEL-NEXT: [[TMP17:%.*]] = call i64 @llvm.vscale.i64()
79-
; LOOP-DEL-NEXT: [[TMP18:%.*]] = mul i64 [[TMP17]], 4
80-
; LOOP-DEL-NEXT: [[TMP19:%.*]] = sub i64 [[TMP18]], 1
81-
; LOOP-DEL-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], [[TMP19]]
82-
; LOOP-DEL-NEXT: [[TMP20:%.*]] = call i64 @llvm.vscale.i64()
83-
; LOOP-DEL-NEXT: [[TMP8:%.*]] = mul i64 [[TMP20]], 4
84-
; LOOP-DEL-NEXT: [[TMP9:%.*]] = udiv i64 [[N_RND_UP]], [[TMP8]]
85-
; LOOP-DEL-NEXT: [[TMP21:%.*]] = shl nuw nsw i64 [[TMP9]], 2
86-
; LOOP-DEL-NEXT: [[TMP22:%.*]] = sub i64 4, [[TMP21]]
87-
; LOOP-DEL-NEXT: [[TMP23:%.*]] = mul i64 [[TMP22]], [[TMP20]]
88-
; LOOP-DEL-NEXT: [[TMP24:%.*]] = sub i64 0, [[TMP23]]
89-
; LOOP-DEL-NEXT: [[TMP25:%.*]] = udiv i64 [[TMP24]], [[TMP8]]
90-
; LOOP-DEL-NEXT: [[TMP15:%.*]] = mul i64 [[TMP25]], [[TMP20]]
91-
; LOOP-DEL-NEXT: [[TMP16:%.*]] = shl i64 [[TMP15]], 2
9268
; LOOP-DEL-NEXT: br label [[VECTOR_BODY:%.*]]
9369
; LOOP-DEL: vector.body:
9470
; LOOP-DEL-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
@@ -97,15 +73,15 @@ define void @simple(ptr noalias %a, ptr noalias %b, <vscale x 4 x i32> %c, i64 %
9773
; LOOP-DEL-NEXT: [[TMP6:%.*]] = add i64 [[EVL_BASED_IV]], 0
9874
; LOOP-DEL-NEXT: [[TMP7:%.*]] = getelementptr inbounds i32, ptr [[B]], i64 [[TMP6]]
9975
; LOOP-DEL-NEXT: [[TMP10:%.*]] = getelementptr inbounds i32, ptr [[TMP7]], i32 0
100-
; LOOP-DEL-NEXT: [[VP_OP_LOAD1:%.*]] = call <vscale x 4 x i32> @llvm.vp.load.nxv4i32.p0(ptr align 4 [[TMP10]], <vscale x 4 x i1> shufflevector (<vscale x 4 x i1> insertelement (<vscale x 4 x i1> poison, i1 true, i64 0), <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer), i32 [[TMP5]])
76+
; LOOP-DEL-NEXT: [[VP_OP_LOAD1:%.*]] = call <vscale x 4 x i32> @llvm.vp.load.nxv4i32.p0(ptr align 4 [[TMP10]], <vscale x 4 x i1> splat (i1 true), i32 [[TMP5]])
10177
; LOOP-DEL-NEXT: [[TMP11:%.*]] = add nsw <vscale x 4 x i32> [[C]], [[VP_OP_LOAD1]]
10278
; LOOP-DEL-NEXT: [[TMP12:%.*]] = getelementptr inbounds i32, ptr [[A]], i64 [[TMP6]]
10379
; LOOP-DEL-NEXT: [[TMP13:%.*]] = getelementptr inbounds i32, ptr [[TMP12]], i32 0
104-
; LOOP-DEL-NEXT: call void @llvm.vp.store.nxv4i32.p0(<vscale x 4 x i32> [[TMP11]], ptr align 4 [[TMP13]], <vscale x 4 x i1> shufflevector (<vscale x 4 x i1> insertelement (<vscale x 4 x i1> poison, i1 true, i64 0), <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer), i32 [[TMP5]])
80+
; LOOP-DEL-NEXT: call void @llvm.vp.store.nxv4i32.p0(<vscale x 4 x i32> [[TMP11]], ptr align 4 [[TMP13]], <vscale x 4 x i1> splat (i1 true), i32 [[TMP5]])
10581
; LOOP-DEL-NEXT: [[TMP14:%.*]] = zext i32 [[TMP5]] to i64
10682
; LOOP-DEL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP14]], [[EVL_BASED_IV]]
107-
; LOOP-DEL-NEXT: [[TMP26:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP16]]
108-
; LOOP-DEL-NEXT: br i1 [[TMP26]], label [[FOR_COND_CLEANUP:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
83+
; LOOP-DEL-NEXT: [[TMP15:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], [[N]]
84+
; LOOP-DEL-NEXT: br i1 [[TMP15]], label [[FOR_COND_CLEANUP:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
10985
; LOOP-DEL: for.body:
11086
; LOOP-DEL-NEXT: [[IV:%.*]] = phi i64 [ [[IV_NEXT:%.*]], [[FOR_BODY]] ], [ 0, [[ENTRY:%.*]] ]
11187
; LOOP-DEL-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[B]], i64 [[IV]]
@@ -186,26 +162,19 @@ define void @fixed_iv_step(ptr %arg0, ptr %arg1, i64 %N) #0 {
186162
; CHECK-NEXT: entry:
187163
; CHECK-NEXT: br label [[VECTOR_PH:%.*]]
188164
; CHECK: vector.ph:
189-
; CHECK-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], 15
190-
; CHECK-NEXT: [[N_VEC:%.*]] = and i64 [[N_RND_UP]], -16
191165
; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 2 x ptr> poison, ptr [[ARG0]], i64 0
192166
; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <vscale x 2 x ptr> [[BROADCAST_SPLATINSERT]], <vscale x 2 x ptr> poison, <vscale x 2 x i32> zeroinitializer
193-
; CHECK-NEXT: [[TMP5:%.*]] = add i64 [[N_VEC]], -16
194-
; CHECK-NEXT: [[TMP6:%.*]] = lshr i64 [[TMP5]], 4
195-
; CHECK-NEXT: [[TMP7:%.*]] = call i64 @llvm.vscale.i64()
196-
; CHECK-NEXT: [[TMP3:%.*]] = mul i64 [[TMP6]], [[TMP7]]
197-
; CHECK-NEXT: [[TMP4:%.*]] = shl i64 [[TMP3]], 1
198167
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
199168
; CHECK: vector.body:
200169
; CHECK-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
201170
; CHECK-NEXT: [[TMP0:%.*]] = sub i64 [[N]], [[EVL_BASED_IV]]
202171
; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.experimental.get.vector.length.i64(i64 [[TMP0]], i32 2, i1 true)
203172
; CHECK-NEXT: [[GEP:%.*]] = getelementptr ptr, ptr [[ARG1]], i64 [[EVL_BASED_IV]]
204-
; CHECK-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer), i32 [[TMP1]])
173+
; CHECK-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> splat (i1 true), i32 [[TMP1]])
205174
; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
206175
; CHECK-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[EVL_BASED_IV]], [[TMP2]]
207-
; CHECK-NEXT: [[TMP8:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP4]]
208-
; CHECK-NEXT: br i1 [[TMP8]], label [[FOR_END_LOOPEXIT5:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
176+
; CHECK-NEXT: [[TMP3:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], [[N]]
177+
; CHECK-NEXT: br i1 [[TMP3]], label [[FOR_END_LOOPEXIT5:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
209178
; CHECK: for.end.loopexit5:
210179
; CHECK-NEXT: br label [[FOR_END:%.*]]
211180
; CHECK: for.end:
@@ -214,26 +183,19 @@ define void @fixed_iv_step(ptr %arg0, ptr %arg1, i64 %N) #0 {
214183
; LOOP-DEL-LABEL: define void @fixed_iv_step(
215184
; LOOP-DEL-SAME: ptr [[ARG0:%.*]], ptr [[ARG1:%.*]], i64 [[N:%.*]]) #[[ATTR1:[0-9]+]] {
216185
; LOOP-DEL-NEXT: entry:
217-
; LOOP-DEL-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], 15
218-
; LOOP-DEL-NEXT: [[N_VEC:%.*]] = and i64 [[N_RND_UP]], -16
219186
; LOOP-DEL-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 2 x ptr> poison, ptr [[ARG0]], i64 0
220187
; LOOP-DEL-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <vscale x 2 x ptr> [[BROADCAST_SPLATINSERT]], <vscale x 2 x ptr> poison, <vscale x 2 x i32> zeroinitializer
221-
; LOOP-DEL-NEXT: [[TMP5:%.*]] = add i64 [[N_VEC]], -16
222-
; LOOP-DEL-NEXT: [[TMP6:%.*]] = lshr i64 [[TMP5]], 4
223-
; LOOP-DEL-NEXT: [[TMP7:%.*]] = call i64 @llvm.vscale.i64()
224-
; LOOP-DEL-NEXT: [[TMP3:%.*]] = mul i64 [[TMP6]], [[TMP7]]
225-
; LOOP-DEL-NEXT: [[TMP4:%.*]] = shl i64 [[TMP3]], 1
226188
; LOOP-DEL-NEXT: br label [[VECTOR_BODY:%.*]]
227189
; LOOP-DEL: vector.body:
228190
; LOOP-DEL-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
229191
; LOOP-DEL-NEXT: [[TMP0:%.*]] = sub i64 [[N]], [[EVL_BASED_IV]]
230192
; LOOP-DEL-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.experimental.get.vector.length.i64(i64 [[TMP0]], i32 2, i1 true)
231193
; LOOP-DEL-NEXT: [[GEP:%.*]] = getelementptr ptr, ptr [[ARG1]], i64 [[EVL_BASED_IV]]
232-
; LOOP-DEL-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer), i32 [[TMP1]])
194+
; LOOP-DEL-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> splat (i1 true), i32 [[TMP1]])
233195
; LOOP-DEL-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
234196
; LOOP-DEL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[EVL_BASED_IV]], [[TMP2]]
235-
; LOOP-DEL-NEXT: [[TMP8:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP4]]
236-
; LOOP-DEL-NEXT: br i1 [[TMP8]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
197+
; LOOP-DEL-NEXT: [[TMP3:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], [[N]]
198+
; LOOP-DEL-NEXT: br i1 [[TMP3]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
237199
; LOOP-DEL: for.end:
238200
; LOOP-DEL-NEXT: ret void
239201
;
@@ -276,19 +238,17 @@ define void @fixed_iv_step_tc(ptr %arg0, ptr %arg1) #0 {
276238
; CHECK: vector.ph:
277239
; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 2 x ptr> poison, ptr [[ARG0]], i64 0
278240
; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <vscale x 2 x ptr> [[BROADCAST_SPLATINSERT]], <vscale x 2 x ptr> poison, <vscale x 2 x i32> zeroinitializer
279-
; CHECK-NEXT: [[TMP3:%.*]] = call i64 @llvm.vscale.i64()
280-
; CHECK-NEXT: [[TMP4:%.*]] = mul nuw nsw i64 [[TMP3]], 10
281241
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
282242
; CHECK: vector.body:
283243
; CHECK-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
284244
; CHECK-NEXT: [[TMP0:%.*]] = sub i64 87, [[EVL_BASED_IV]]
285245
; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.experimental.get.vector.length.i64(i64 [[TMP0]], i32 2, i1 true)
286246
; CHECK-NEXT: [[GEP:%.*]] = getelementptr ptr, ptr [[ARG1]], i64 [[EVL_BASED_IV]]
287-
; CHECK-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer), i32 [[TMP1]])
247+
; CHECK-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> splat (i1 true), i32 [[TMP1]])
288248
; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
289249
; CHECK-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[EVL_BASED_IV]], [[TMP2]]
290-
; CHECK-NEXT: [[TMP5:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP4]]
291-
; CHECK-NEXT: br i1 [[TMP5]], label [[FOR_END_LOOPEXIT5:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
250+
; CHECK-NEXT: [[TMP3:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], 87
251+
; CHECK-NEXT: br i1 [[TMP3]], label [[FOR_END_LOOPEXIT5:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
292252
; CHECK: for.end.loopexit5:
293253
; CHECK-NEXT: br label [[FOR_END:%.*]]
294254
; CHECK: for.end:
@@ -299,19 +259,17 @@ define void @fixed_iv_step_tc(ptr %arg0, ptr %arg1) #0 {
299259
; LOOP-DEL-NEXT: entry:
300260
; LOOP-DEL-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <vscale x 2 x ptr> poison, ptr [[ARG0]], i64 0
301261
; LOOP-DEL-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <vscale x 2 x ptr> [[BROADCAST_SPLATINSERT]], <vscale x 2 x ptr> poison, <vscale x 2 x i32> zeroinitializer
302-
; LOOP-DEL-NEXT: [[TMP3:%.*]] = call i64 @llvm.vscale.i64()
303-
; LOOP-DEL-NEXT: [[TMP4:%.*]] = mul nuw nsw i64 [[TMP3]], 10
304262
; LOOP-DEL-NEXT: br label [[VECTOR_BODY:%.*]]
305263
; LOOP-DEL: vector.body:
306264
; LOOP-DEL-NEXT: [[EVL_BASED_IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INDEX_EVL_NEXT:%.*]], [[VECTOR_BODY]] ]
307265
; LOOP-DEL-NEXT: [[TMP0:%.*]] = sub i64 87, [[EVL_BASED_IV]]
308266
; LOOP-DEL-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.experimental.get.vector.length.i64(i64 [[TMP0]], i32 2, i1 true)
309267
; LOOP-DEL-NEXT: [[GEP:%.*]] = getelementptr ptr, ptr [[ARG1]], i64 [[EVL_BASED_IV]]
310-
; LOOP-DEL-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer), i32 [[TMP1]])
268+
; LOOP-DEL-NEXT: tail call void @llvm.vp.store.nxv2p0.p0(<vscale x 2 x ptr> [[BROADCAST_SPLAT]], ptr align 8 [[GEP]], <vscale x 2 x i1> splat (i1 true), i32 [[TMP1]])
311269
; LOOP-DEL-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
312270
; LOOP-DEL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[EVL_BASED_IV]], [[TMP2]]
313-
; LOOP-DEL-NEXT: [[TMP5:%.*]] = icmp ugt i64 [[INDEX_EVL_NEXT]], [[TMP4]]
314-
; LOOP-DEL-NEXT: br i1 [[TMP5]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
271+
; LOOP-DEL-NEXT: [[TMP3:%.*]] = icmp uge i64 [[INDEX_EVL_NEXT]], 87
272+
; LOOP-DEL-NEXT: br i1 [[TMP3]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3]]
315273
; LOOP-DEL: for.end:
316274
; LOOP-DEL-NEXT: ret void
317275
;

0 commit comments

Comments
 (0)