Skip to content

Commit ef2d94d

Browse files
committed
Add testcases.
1 parent bb51c5d commit ef2d94d

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/test/CodeGen/RISCV/rvv/vp-splice.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,33 @@ define <vscale x 2 x float> @test_vp_splice_nxv2f32_masked(<vscale x 2 x float>
286286
%v = call <vscale x 2 x float> @llvm.experimental.vp.splice.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, i32 5, <vscale x 2 x i1> %mask, i32 %evla, i32 %evlb)
287287
ret <vscale x 2 x float> %v
288288
}
289+
290+
define <vscale x 2 x i32> @test_vp_splice_nxv2i32_with_firstelt(i32 %first, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %mask, i32 zeroext %evl) {
291+
; CHECK-LABEL: test_vp_splice_nxv2i32_with_firstelt:
292+
; CHECK: # %bb.0:
293+
; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, ma
294+
; CHECK-NEXT: vmv.s.x v9, a0
295+
; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
296+
; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu
297+
; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
298+
; CHECK-NEXT: vmv.v.v v8, v9
299+
; CHECK-NEXT: ret
300+
%va = insertelement <vscale x 2 x i32> poison, i32 %first, i32 0
301+
%v = call <vscale x 2 x i32> @llvm.experimental.vp.splice.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, i32 0, <vscale x 2 x i1> %mask, i32 1, i32 %evl)
302+
ret <vscale x 2 x i32> %v
303+
}
304+
305+
define <vscale x 2 x float> @test_vp_splice_nxv2f32_with_firstelt(float %first, <vscale x 2 x float> %vb, <vscale x 2 x i1> %mask, i32 zeroext %evl) {
306+
; CHECK-LABEL: test_vp_splice_nxv2f32_with_firstelt:
307+
; CHECK: # %bb.0:
308+
; CHECK-NEXT: vsetvli a1, zero, e32, m1, ta, ma
309+
; CHECK-NEXT: vfmv.s.f v9, fa0
310+
; CHECK-NEXT: vslidedown.vi v9, v9, 0, v0.t
311+
; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, mu
312+
; CHECK-NEXT: vslideup.vi v9, v8, 1, v0.t
313+
; CHECK-NEXT: vmv.v.v v8, v9
314+
; CHECK-NEXT: ret
315+
%va = insertelement <vscale x 2 x float> poison, float %first, i32 0
316+
%v = call <vscale x 2 x float> @llvm.experimental.vp.splice.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, i32 0, <vscale x 2 x i1> %mask, i32 1, i32 %evl)
317+
ret <vscale x 2 x float> %v
318+
}

0 commit comments

Comments
 (0)