diff --git a/llvm/lib/Target/RISCV/RISCVSystemOperands.td b/llvm/lib/Target/RISCV/RISCVSystemOperands.td --- a/llvm/lib/Target/RISCV/RISCVSystemOperands.td +++ b/llvm/lib/Target/RISCV/RISCVSystemOperands.td @@ -385,6 +385,7 @@ def : SysReg<"vstart", 0x008>; def : SysReg<"vxsat", 0x009>; def : SysReg<"vxrm", 0x00A>; +def : SysReg<"vcsr", 0x00F>; def : SysReg<"vl", 0xC20>; def : SysReg<"vtype", 0xC21>; def : SysReg<"vlenb", 0xC22>; diff --git a/llvm/test/MC/RISCV/rvv-user-csr-names.s b/llvm/test/MC/RISCV/rvv-user-csr-names.s --- a/llvm/test/MC/RISCV/rvv-user-csr-names.s +++ b/llvm/test/MC/RISCV/rvv-user-csr-names.s @@ -56,6 +56,20 @@ # uimm12 csrrs t2, 0x00a, zero +# vcsr +# name +# CHECK-INST: csrrs t1, vcsr, zero +# CHECK-ENC: encoding: [0x73,0x23,0xf0,0x00] +# CHECK-INST-ALIAS: csrr t1, vcsr +# uimm12 +# CHECK-INST: csrrs t2, vcsr, zero +# CHECK-ENC: encoding: [0xf3,0x23,0xf0,0x00] +# CHECK-INST-ALIAS: csrr t2, vcsr +# name +csrrs t1, vcsr, zero +# uimm12 +csrrs t2, 0x00f, zero + # vl # name # CHECK-INST: csrrs t1, vl, zero