@@ -252,36 +252,46 @@ for.end: ; preds = %for.body
252
252
define void @trip16_i8 (ptr noalias nocapture noundef %dst , ptr noalias nocapture noundef readonly %src ) #0 {
253
253
; CHECK-LABEL: @trip16_i8(
254
254
; CHECK-NEXT: entry:
255
- ; CHECK-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
255
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.vscale.i64()
256
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul i64 [[TMP0]], 8
257
+ ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 16, [[TMP1]]
258
+ ; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
256
259
; CHECK: vector.ph:
260
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i64 @llvm.vscale.i64()
261
+ ; CHECK-NEXT: [[TMP3:%.*]] = mul i64 [[TMP2]], 8
262
+ ; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 16, [[TMP3]]
263
+ ; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 16, [[N_MOD_VF]]
264
+ ; CHECK-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
265
+ ; CHECK-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 8
257
266
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
258
267
; CHECK: vector.body:
259
268
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
260
- ; CHECK-NEXT: [[TMP0 :%.*]] = add i64 [[INDEX]], 0
261
- ; CHECK-NEXT: [[TMP1 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP0 ]]
262
- ; CHECK-NEXT: [[TMP2 :%.*]] = getelementptr inbounds i8, ptr [[TMP1 ]], i32 0
263
- ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <16 x i8>, ptr [[TMP2 ]], align 1
264
- ; CHECK-NEXT: [[TMP3 :%.*]] = shl <16 x i8> [[WIDE_LOAD]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1 , i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
265
- ; CHECK-NEXT: [[TMP4 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP0 ]]
266
- ; CHECK-NEXT: [[TMP5 :%.*]] = getelementptr inbounds i8, ptr [[TMP4 ]], i32 0
267
- ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <16 x i8>, ptr [[TMP5 ]], align 1
268
- ; CHECK-NEXT: [[TMP6 :%.*]] = add <16 x i8> [[TMP3 ]], [[WIDE_LOAD1]]
269
- ; CHECK-NEXT: store <16 x i8> [[TMP6 ]], ptr [[TMP5 ]], align 1
270
- ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 16
269
+ ; CHECK-NEXT: [[TMP6 :%.*]] = add i64 [[INDEX]], 0
270
+ ; CHECK-NEXT: [[TMP7 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP6 ]]
271
+ ; CHECK-NEXT: [[TMP8 :%.*]] = getelementptr inbounds i8, ptr [[TMP7 ]], i32 0
272
+ ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <vscale x 8 x i8>, ptr [[TMP8 ]], align 1
273
+ ; CHECK-NEXT: [[TMP9 :%.*]] = shl <vscale x 8 x i8> [[WIDE_LOAD]], shufflevector (<vscale x 8 x i8> insertelement (<vscale x 8 x i8> poison , i8 1, i64 0), <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer)
274
+ ; CHECK-NEXT: [[TMP10 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP6 ]]
275
+ ; CHECK-NEXT: [[TMP11 :%.*]] = getelementptr inbounds i8, ptr [[TMP10 ]], i32 0
276
+ ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <vscale x 8 x i8>, ptr [[TMP11 ]], align 1
277
+ ; CHECK-NEXT: [[TMP12 :%.*]] = add <vscale x 8 x i8> [[TMP9 ]], [[WIDE_LOAD1]]
278
+ ; CHECK-NEXT: store <vscale x 8 x i8> [[TMP12 ]], ptr [[TMP11 ]], align 1
279
+ ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[TMP5]]
271
280
; CHECK-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
272
281
; CHECK: middle.block:
273
- ; CHECK-NEXT: br i1 true, label [[FOR_END:%.*]], label [[SCALAR_PH]]
282
+ ; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 16, [[N_VEC]]
283
+ ; CHECK-NEXT: br i1 [[CMP_N]], label [[FOR_END:%.*]], label [[SCALAR_PH]]
274
284
; CHECK: scalar.ph:
275
- ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 16 , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
285
+ ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]] , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
276
286
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
277
287
; CHECK: for.body:
278
288
; CHECK-NEXT: [[I_08:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
279
289
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[SRC]], i64 [[I_08]]
280
- ; CHECK-NEXT: [[TMP7 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
281
- ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP7 ]], 1
290
+ ; CHECK-NEXT: [[TMP13 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
291
+ ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP13 ]], 1
282
292
; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i8, ptr [[DST]], i64 [[I_08]]
283
- ; CHECK-NEXT: [[TMP8 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
284
- ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP8 ]]
293
+ ; CHECK-NEXT: [[TMP14 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
294
+ ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP14 ]]
285
295
; CHECK-NEXT: store i8 [[ADD]], ptr [[ARRAYIDX1]], align 1
286
296
; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_08]], 1
287
297
; CHECK-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[INC]], 16
@@ -313,36 +323,46 @@ for.end: ; preds = %for.body
313
323
define void @trip32_i8 (ptr noalias nocapture noundef %dst , ptr noalias nocapture noundef readonly %src ) #0 {
314
324
; CHECK-LABEL: @trip32_i8(
315
325
; CHECK-NEXT: entry:
316
- ; CHECK-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
326
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.vscale.i64()
327
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul i64 [[TMP0]], 16
328
+ ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 32, [[TMP1]]
329
+ ; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
317
330
; CHECK: vector.ph:
331
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i64 @llvm.vscale.i64()
332
+ ; CHECK-NEXT: [[TMP3:%.*]] = mul i64 [[TMP2]], 16
333
+ ; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 32, [[TMP3]]
334
+ ; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 32, [[N_MOD_VF]]
335
+ ; CHECK-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
336
+ ; CHECK-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 16
318
337
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
319
338
; CHECK: vector.body:
320
339
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
321
- ; CHECK-NEXT: [[TMP0 :%.*]] = add i64 [[INDEX]], 0
322
- ; CHECK-NEXT: [[TMP1 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP0 ]]
323
- ; CHECK-NEXT: [[TMP2 :%.*]] = getelementptr inbounds i8, ptr [[TMP1 ]], i32 0
324
- ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <32 x i8>, ptr [[TMP2 ]], align 1
325
- ; CHECK-NEXT: [[TMP3 :%.*]] = shl <32 x i8> [[WIDE_LOAD]], <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1 , i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
326
- ; CHECK-NEXT: [[TMP4 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP0 ]]
327
- ; CHECK-NEXT: [[TMP5 :%.*]] = getelementptr inbounds i8, ptr [[TMP4 ]], i32 0
328
- ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <32 x i8>, ptr [[TMP5 ]], align 1
329
- ; CHECK-NEXT: [[TMP6 :%.*]] = add <32 x i8> [[TMP3 ]], [[WIDE_LOAD1]]
330
- ; CHECK-NEXT: store <32 x i8> [[TMP6 ]], ptr [[TMP5 ]], align 1
331
- ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 32
340
+ ; CHECK-NEXT: [[TMP6 :%.*]] = add i64 [[INDEX]], 0
341
+ ; CHECK-NEXT: [[TMP7 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP6 ]]
342
+ ; CHECK-NEXT: [[TMP8 :%.*]] = getelementptr inbounds i8, ptr [[TMP7 ]], i32 0
343
+ ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <vscale x 16 x i8>, ptr [[TMP8 ]], align 1
344
+ ; CHECK-NEXT: [[TMP9 :%.*]] = shl <vscale x 16 x i8> [[WIDE_LOAD]], shufflevector (<vscale x 16 x i8> insertelement (<vscale x 16 x i8> poison , i8 1, i64 0), <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer)
345
+ ; CHECK-NEXT: [[TMP10 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP6 ]]
346
+ ; CHECK-NEXT: [[TMP11 :%.*]] = getelementptr inbounds i8, ptr [[TMP10 ]], i32 0
347
+ ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <vscale x 16 x i8>, ptr [[TMP11 ]], align 1
348
+ ; CHECK-NEXT: [[TMP12 :%.*]] = add <vscale x 16 x i8> [[TMP9 ]], [[WIDE_LOAD1]]
349
+ ; CHECK-NEXT: store <vscale x 16 x i8> [[TMP12 ]], ptr [[TMP11 ]], align 1
350
+ ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[TMP5]]
332
351
; CHECK-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
333
352
; CHECK: middle.block:
334
- ; CHECK-NEXT: br i1 true, label [[FOR_END:%.*]], label [[SCALAR_PH]]
353
+ ; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 32, [[N_VEC]]
354
+ ; CHECK-NEXT: br i1 [[CMP_N]], label [[FOR_END:%.*]], label [[SCALAR_PH]]
335
355
; CHECK: scalar.ph:
336
- ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 32 , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
356
+ ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]] , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
337
357
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
338
358
; CHECK: for.body:
339
359
; CHECK-NEXT: [[I_08:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
340
360
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[SRC]], i64 [[I_08]]
341
- ; CHECK-NEXT: [[TMP7 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
342
- ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP7 ]], 1
361
+ ; CHECK-NEXT: [[TMP13 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
362
+ ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP13 ]], 1
343
363
; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i8, ptr [[DST]], i64 [[I_08]]
344
- ; CHECK-NEXT: [[TMP8 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
345
- ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP8 ]]
364
+ ; CHECK-NEXT: [[TMP14 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
365
+ ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP14 ]]
346
366
; CHECK-NEXT: store i8 [[ADD]], ptr [[ARRAYIDX1]], align 1
347
367
; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_08]], 1
348
368
; CHECK-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[INC]], 32
@@ -373,37 +393,47 @@ for.end: ; preds = %for.body
373
393
define void @trip24_i8 (ptr noalias nocapture noundef %dst , ptr noalias nocapture noundef readonly %src ) #0 {
374
394
; CHECK-LABEL: @trip24_i8(
375
395
; CHECK-NEXT: entry:
376
- ; CHECK-NEXT: br i1 false, label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
396
+ ; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.vscale.i64()
397
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul i64 [[TMP0]], 4
398
+ ; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 24, [[TMP1]]
399
+ ; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label [[SCALAR_PH:%.*]], label [[VECTOR_PH:%.*]]
377
400
; CHECK: vector.ph:
401
+ ; CHECK-NEXT: [[TMP2:%.*]] = call i64 @llvm.vscale.i64()
402
+ ; CHECK-NEXT: [[TMP3:%.*]] = mul i64 [[TMP2]], 4
403
+ ; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 24, [[TMP3]]
404
+ ; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 24, [[N_MOD_VF]]
405
+ ; CHECK-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
406
+ ; CHECK-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 4
378
407
; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
379
408
; CHECK: vector.body:
380
409
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
381
- ; CHECK-NEXT: [[TMP0 :%.*]] = add i64 [[INDEX]], 0
382
- ; CHECK-NEXT: [[TMP1 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP0 ]]
383
- ; CHECK-NEXT: [[TMP2 :%.*]] = getelementptr inbounds i8, ptr [[TMP1 ]], i32 0
384
- ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i8>, ptr [[TMP2 ]], align 1
385
- ; CHECK-NEXT: [[TMP3 :%.*]] = shl <8 x i8> [[WIDE_LOAD]], <i8 1, i8 1, i8 1, i8 1 , i8 1, i8 1, i8 1, i8 1>
386
- ; CHECK-NEXT: [[TMP4 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP0 ]]
387
- ; CHECK-NEXT: [[TMP5 :%.*]] = getelementptr inbounds i8, ptr [[TMP4 ]], i32 0
388
- ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <8 x i8>, ptr [[TMP5 ]], align 1
389
- ; CHECK-NEXT: [[TMP6 :%.*]] = add <8 x i8> [[TMP3 ]], [[WIDE_LOAD1]]
390
- ; CHECK-NEXT: store <8 x i8> [[TMP6 ]], ptr [[TMP5 ]], align 1
391
- ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
392
- ; CHECK-NEXT: [[TMP7 :%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
393
- ; CHECK-NEXT: br i1 [[TMP7 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
410
+ ; CHECK-NEXT: [[TMP6 :%.*]] = add i64 [[INDEX]], 0
411
+ ; CHECK-NEXT: [[TMP7 :%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i64 [[TMP6 ]]
412
+ ; CHECK-NEXT: [[TMP8 :%.*]] = getelementptr inbounds i8, ptr [[TMP7 ]], i32 0
413
+ ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <vscale x 4 x i8>, ptr [[TMP8 ]], align 1
414
+ ; CHECK-NEXT: [[TMP9 :%.*]] = shl <vscale x 4 x i8> [[WIDE_LOAD]], shufflevector (<vscale x 4 x i8> insertelement (<vscale x 4 x i8> poison , i8 1, i64 0), <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer)
415
+ ; CHECK-NEXT: [[TMP10 :%.*]] = getelementptr inbounds i8, ptr [[DST:%.*]], i64 [[TMP6 ]]
416
+ ; CHECK-NEXT: [[TMP11 :%.*]] = getelementptr inbounds i8, ptr [[TMP10 ]], i32 0
417
+ ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <vscale x 4 x i8>, ptr [[TMP11 ]], align 1
418
+ ; CHECK-NEXT: [[TMP12 :%.*]] = add <vscale x 4 x i8> [[TMP9 ]], [[WIDE_LOAD1]]
419
+ ; CHECK-NEXT: store <vscale x 4 x i8> [[TMP12 ]], ptr [[TMP11 ]], align 1
420
+ ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[TMP5]]
421
+ ; CHECK-NEXT: [[TMP13 :%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
422
+ ; CHECK-NEXT: br i1 [[TMP13 ]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
394
423
; CHECK: middle.block:
395
- ; CHECK-NEXT: br i1 true, label [[FOR_END:%.*]], label [[SCALAR_PH]]
424
+ ; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 24, [[N_VEC]]
425
+ ; CHECK-NEXT: br i1 [[CMP_N]], label [[FOR_END:%.*]], label [[SCALAR_PH]]
396
426
; CHECK: scalar.ph:
397
- ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24 , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
427
+ ; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]] , [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
398
428
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
399
429
; CHECK: for.body:
400
430
; CHECK-NEXT: [[I_08:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
401
431
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[SRC]], i64 [[I_08]]
402
- ; CHECK-NEXT: [[TMP8 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
403
- ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP8 ]], 1
432
+ ; CHECK-NEXT: [[TMP14 :%.*]] = load i8, ptr [[ARRAYIDX]], align 1
433
+ ; CHECK-NEXT: [[MUL:%.*]] = shl i8 [[TMP14 ]], 1
404
434
; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i8, ptr [[DST]], i64 [[I_08]]
405
- ; CHECK-NEXT: [[TMP9 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
406
- ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP9 ]]
435
+ ; CHECK-NEXT: [[TMP15 :%.*]] = load i8, ptr [[ARRAYIDX1]], align 1
436
+ ; CHECK-NEXT: [[ADD:%.*]] = add i8 [[MUL]], [[TMP15 ]]
407
437
; CHECK-NEXT: store i8 [[ADD]], ptr [[ARRAYIDX1]], align 1
408
438
; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_08]], 1
409
439
; CHECK-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[INC]], 24
0 commit comments