diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll --- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll +++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll @@ -745,3 +745,18 @@ ; CHECK-NEXT: ret ret <4 x i8> } + +; FIXME: This is not a valid way to emit this vid sequence: shift-right for +; division only works for non-negative numbers! +define <16 x i8> @buildvec_not_vid_v16i8() { +; CHECK-LABEL: buildvec_not_vid_v16i8: +; CHECK: # %bb.0: +; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, mu +; CHECK-NEXT: vid.v v8 +; CHECK-NEXT: li a0, -3 +; CHECK-NEXT: vmul.vx v8, v8, a0 +; CHECK-NEXT: vsrl.vi v8, v8, 3 +; CHECK-NEXT: vadd.vi v8, v8, 5 +; CHECK-NEXT: ret + ret <16 x i8> +}