diff --git a/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll b/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll --- a/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll +++ b/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll @@ -145,3 +145,18 @@ declare @llvm.experimental.stepvector.nxv1i16() declare @llvm.vector.insert.nxv8i16.nxv1i16(, , i64 immarg) declare @llvm.riscv.vrgatherei16.vv.nxv8i8.i64(, , , i64) + + +define void @repeat_shuffle(<2 x double> %v, ptr noalias %q) { +; CHECK-LABEL: repeat_shuffle: +; CHECK: # %bb.0: +; CHECK-NEXT: vmv2r.v v12, v8 +; CHECK-NEXT: vsetivli zero, 4, e64, m2, ta, ma +; CHECK-NEXT: vmv1r.v v13, v10 +; CHECK-NEXT: vslideup.vi v8, v12, 2 +; CHECK-NEXT: vse64.v v8, (a0) +; CHECK-NEXT: ret + %w = shufflevector <2 x double> %v, <2 x double> poison, <4 x i32> + store <4 x double> %w, ptr %q + ret void +}