diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll index 7b9a30187f5e3..0928a47757430 100644 --- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll +++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll @@ -380,30 +380,18 @@ entry: ret void } -; TODO: Allow an undef initial element define void @vnsrl_0_i8_undef3(ptr %in, ptr %out) { ; CHECK-LABEL: vnsrl_0_i8_undef3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: vsetivli zero, 16, e8, mf2, ta, ma ; CHECK-NEXT: vle8.v v8, (a0) -; CHECK-NEXT: vmv.v.i v0, 8 -; CHECK-NEXT: vsetivli zero, 8, e8, mf4, ta, mu -; CHECK-NEXT: vid.v v9 -; CHECK-NEXT: li a0, -32 -; CHECK-NEXT: vadd.vv v9, v9, v9 -; CHECK-NEXT: vadd.vi v9, v9, -8 -; CHECK-NEXT: vslidedown.vi v10, v8, 2 -; CHECK-NEXT: vslidedown.vi v10, v8, 3, v0.t -; CHECK-NEXT: vmv.s.x v0, a0 -; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma -; CHECK-NEXT: vslidedown.vi v8, v8, 8 -; CHECK-NEXT: vsetivli zero, 8, e8, mf4, ta, mu -; CHECK-NEXT: vrgather.vv v10, v8, v9, v0.t -; CHECK-NEXT: vse8.v v10, (a1) +; CHECK-NEXT: vsetivli zero, 8, e8, mf4, ta, ma +; CHECK-NEXT: vnsrl.wi v8, v8, 0 +; CHECK-NEXT: vse8.v v8, (a1) ; CHECK-NEXT: ret entry: %0 = load <16 x i8>, ptr %in, align 1 - %shuffle.i5 = shufflevector <16 x i8> %0, <16 x i8> poison, <8 x i32> + %shuffle.i5 = shufflevector <16 x i8> %0, <16 x i8> poison, <8 x i32> store <8 x i8> %shuffle.i5, ptr %out, align 1 ret void }