@@ -81,8 +81,7 @@ define <vscale x 4 x i8> @insert_nxv1i8_nxv4i8_3(<vscale x 4 x i8> %vec, <vscale
81
81
; CHECK-NEXT: srli a1, a0, 3
82
82
; CHECK-NEXT: srli a0, a0, 2
83
83
; CHECK-NEXT: add a0, a0, a1
84
- ; CHECK-NEXT: add a1, a0, a1
85
- ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
84
+ ; CHECK-NEXT: vsetvli a1, zero, e8, mf2, ta, ma
86
85
; CHECK-NEXT: vslideup.vx v8, v9, a0
87
86
; CHECK-NEXT: ret
88
87
%v = call <vscale x 4 x i8 > @llvm.vector.insert.nxv1i8.nxv4i8 (<vscale x 4 x i8 > %vec , <vscale x 1 x i8 > %subvec , i64 3 )
@@ -246,8 +245,7 @@ define <vscale x 16 x i32> @insert_nxv16i32_nxv1i32_1(<vscale x 16 x i32> %vec,
246
245
; CHECK: # %bb.0:
247
246
; CHECK-NEXT: csrr a0, vlenb
248
247
; CHECK-NEXT: srli a0, a0, 3
249
- ; CHECK-NEXT: add a1, a0, a0
250
- ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
248
+ ; CHECK-NEXT: vsetvli a1, zero, e32, m1, ta, ma
251
249
; CHECK-NEXT: vslideup.vx v8, v16, a0
252
250
; CHECK-NEXT: ret
253
251
%v = call <vscale x 16 x i32 > @llvm.vector.insert.nxv1i32.nxv16i32 (<vscale x 16 x i32 > %vec , <vscale x 1 x i32 > %subvec , i64 1 )
@@ -282,8 +280,8 @@ define <vscale x 16 x i8> @insert_nxv16i8_nxv1i8_1(<vscale x 16 x i8> %vec, <vsc
282
280
; CHECK-LABEL: insert_nxv16i8_nxv1i8_1:
283
281
; CHECK: # %bb.0:
284
282
; CHECK-NEXT: csrr a0, vlenb
283
+ ; CHECK-NEXT: srli a1, a0, 2
285
284
; CHECK-NEXT: srli a0, a0, 3
286
- ; CHECK-NEXT: add a1, a0, a0
287
285
; CHECK-NEXT: vsetvli zero, a1, e8, m1, tu, ma
288
286
; CHECK-NEXT: vslideup.vx v8, v10, a0
289
287
; CHECK-NEXT: ret
@@ -310,11 +308,11 @@ define <vscale x 16 x i8> @insert_nxv16i8_nxv1i8_3(<vscale x 16 x i8> %vec, <vsc
310
308
; CHECK: # %bb.0:
311
309
; CHECK-NEXT: csrr a0, vlenb
312
310
; CHECK-NEXT: srli a1, a0, 3
313
- ; CHECK-NEXT: srli a0 , a0, 2
314
- ; CHECK-NEXT: add a0, a0 , a1
315
- ; CHECK-NEXT: add a1 , a0, a1
316
- ; CHECK-NEXT: vsetvli zero, a1 , e8, m1, tu, ma
317
- ; CHECK-NEXT: vslideup.vx v8, v10, a0
311
+ ; CHECK-NEXT: srli a2 , a0, 2
312
+ ; CHECK-NEXT: add a1, a2 , a1
313
+ ; CHECK-NEXT: srli a0 , a0, 1
314
+ ; CHECK-NEXT: vsetvli zero, a0 , e8, m1, tu, ma
315
+ ; CHECK-NEXT: vslideup.vx v8, v10, a1
318
316
; CHECK-NEXT: ret
319
317
%v = call <vscale x 16 x i8 > @llvm.vector.insert.nxv1i8.nxv16i8 (<vscale x 16 x i8 > %vec , <vscale x 1 x i8 > %subvec , i64 3 )
320
318
ret <vscale x 16 x i8 > %v
@@ -363,8 +361,7 @@ define <vscale x 32 x half> @insert_nxv32f16_nxv2f16_2(<vscale x 32 x half> %vec
363
361
; CHECK: # %bb.0:
364
362
; CHECK-NEXT: csrr a0, vlenb
365
363
; CHECK-NEXT: srli a0, a0, 2
366
- ; CHECK-NEXT: add a1, a0, a0
367
- ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
364
+ ; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
368
365
; CHECK-NEXT: vslideup.vx v8, v16, a0
369
366
; CHECK-NEXT: ret
370
367
%v = call <vscale x 32 x half > @llvm.vector.insert.nxv2f16.nxv32f16 (<vscale x 32 x half > %vec , <vscale x 2 x half > %subvec , i64 2 )
@@ -376,8 +373,7 @@ define <vscale x 32 x half> @insert_nxv32f16_nxv2f16_26(<vscale x 32 x half> %ve
376
373
; CHECK: # %bb.0:
377
374
; CHECK-NEXT: csrr a0, vlenb
378
375
; CHECK-NEXT: srli a0, a0, 2
379
- ; CHECK-NEXT: add a1, a0, a0
380
- ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
376
+ ; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
381
377
; CHECK-NEXT: vslideup.vx v14, v16, a0
382
378
; CHECK-NEXT: ret
383
379
%v = call <vscale x 32 x half > @llvm.vector.insert.nxv2f16.nxv32f16 (<vscale x 32 x half > %vec , <vscale x 2 x half > %subvec , i64 26 )
@@ -422,8 +418,8 @@ define <vscale x 32 x i1> @insert_nxv32i1_nxv8i1_8(<vscale x 32 x i1> %v, <vscal
422
418
; CHECK-LABEL: insert_nxv32i1_nxv8i1_8:
423
419
; CHECK: # %bb.0:
424
420
; CHECK-NEXT: csrr a0, vlenb
421
+ ; CHECK-NEXT: srli a1, a0, 2
425
422
; CHECK-NEXT: srli a0, a0, 3
426
- ; CHECK-NEXT: add a1, a0, a0
427
423
; CHECK-NEXT: vsetvli zero, a1, e8, mf2, tu, ma
428
424
; CHECK-NEXT: vslideup.vx v0, v8, a0
429
425
; CHECK-NEXT: ret
@@ -570,8 +566,7 @@ define <vscale x 32 x bfloat> @insert_nxv32bf16_nxv2bf16_2(<vscale x 32 x bfloat
570
566
; CHECK: # %bb.0:
571
567
; CHECK-NEXT: csrr a0, vlenb
572
568
; CHECK-NEXT: srli a0, a0, 2
573
- ; CHECK-NEXT: add a1, a0, a0
574
- ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
569
+ ; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
575
570
; CHECK-NEXT: vslideup.vx v8, v16, a0
576
571
; CHECK-NEXT: ret
577
572
%v = call <vscale x 32 x bfloat> @llvm.vector.insert.nxv2bf16.nxv32bf16 (<vscale x 32 x bfloat> %vec , <vscale x 2 x bfloat> %subvec , i64 2 )
@@ -583,8 +578,7 @@ define <vscale x 32 x bfloat> @insert_nxv32bf16_nxv2bf16_26(<vscale x 32 x bfloa
583
578
; CHECK: # %bb.0:
584
579
; CHECK-NEXT: csrr a0, vlenb
585
580
; CHECK-NEXT: srli a0, a0, 2
586
- ; CHECK-NEXT: add a1, a0, a0
587
- ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
581
+ ; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
588
582
; CHECK-NEXT: vslideup.vx v14, v16, a0
589
583
; CHECK-NEXT: ret
590
584
%v = call <vscale x 32 x bfloat> @llvm.vector.insert.nxv2bf16.nxv32bf16 (<vscale x 32 x bfloat> %vec , <vscale x 2 x bfloat> %subvec , i64 26 )
0 commit comments