@@ -292,11 +292,8 @@ define <8 x half> @test_vp_splice_v8f16_masked(<8 x half> %va, <8 x half> %vb, <
292
292
define <4 x i32 > @test_vp_splice_v4i32_with_firstelt (i32 %first , <4 x i32 > %vb , <4 x i1 > %mask , i32 zeroext %evl ) {
293
293
; CHECK-LABEL: test_vp_splice_v4i32_with_firstelt:
294
294
; CHECK: # %bb.0:
295
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
296
- ; CHECK-NEXT: vmv.s.x v9, a0
297
- ; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
298
- ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu
299
- ; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
295
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
296
+ ; CHECK-NEXT: vslide1up.vx v9, v8, a0, v0.t
300
297
; CHECK-NEXT: vmv.v.v v8, v9
301
298
; CHECK-NEXT: ret
302
299
%va = insertelement <4 x i32 > poison, i32 %first , i32 0
@@ -307,11 +304,8 @@ define <4 x i32> @test_vp_splice_v4i32_with_firstelt(i32 %first, <4 x i32> %vb,
307
304
define <4 x i32 > @test_vp_splice_v4i32_with_splat_firstelt (i32 %first , <4 x i32 > %vb , <4 x i1 > %mask , i32 zeroext %evl ) {
308
305
; CHECK-LABEL: test_vp_splice_v4i32_with_splat_firstelt:
309
306
; CHECK: # %bb.0:
310
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
311
- ; CHECK-NEXT: vmv.v.x v9, a0
312
- ; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
313
- ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu
314
- ; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
307
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
308
+ ; CHECK-NEXT: vslide1up.vx v9, v8, a0, v0.t
315
309
; CHECK-NEXT: vmv.v.v v8, v9
316
310
; CHECK-NEXT: ret
317
311
%ins = insertelement <4 x i32 > poison, i32 %first , i32 0
@@ -323,11 +317,8 @@ define <4 x i32> @test_vp_splice_v4i32_with_splat_firstelt(i32 %first, <4 x i32>
323
317
define <4 x float > @test_vp_splice_nxv2f32_with_firstelt (float %first , <4 x float > %vb , <4 x i1 > %mask , i32 zeroext %evl ) {
324
318
; CHECK-LABEL: test_vp_splice_nxv2f32_with_firstelt:
325
319
; CHECK: # %bb.0:
326
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
327
- ; CHECK-NEXT: vfmv.s.f v9, fa0
328
- ; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
329
- ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, mu
330
- ; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
320
+ ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
321
+ ; CHECK-NEXT: vfslide1up.vf v9, v8, fa0, v0.t
331
322
; CHECK-NEXT: vmv.v.v v8, v9
332
323
; CHECK-NEXT: ret
333
324
%va = insertelement <4 x float > poison, float %first , i32 0
@@ -338,11 +329,8 @@ define <4 x float> @test_vp_splice_nxv2f32_with_firstelt(float %first, <4 x floa
338
329
define <4 x half > @test_vp_splice_nxv2f16_with_firstelt (half %first , <4 x half > %vb , <4 x i1 > %mask , i32 zeroext %evl ) {
339
330
; CHECK-LABEL: test_vp_splice_nxv2f16_with_firstelt:
340
331
; CHECK: # %bb.0:
341
- ; CHECK-NEXT: vsetivli zero, 1, e16, mf2, ta, ma
342
- ; CHECK-NEXT: vfmv.s.f v9, fa0
343
- ; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
344
- ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
345
- ; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
332
+ ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
333
+ ; CHECK-NEXT: vfslide1up.vf v9, v8, fa0, v0.t
346
334
; CHECK-NEXT: vmv1r.v v8, v9
347
335
; CHECK-NEXT: ret
348
336
%va = insertelement <4 x half > poison, half %first , i32 0
0 commit comments