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 @@ -365,6 +365,7 @@ //===----------------------------------------------- // Machine-level CSRs +let FeaturesRequired = [{ {RISCV::FeatureStdExtSmaia} }] in { def : SysReg<"miselect", 0x350>; def : SysReg<"mireg", 0x351>; def : SysReg<"mtopei", 0x35C>; @@ -378,8 +379,10 @@ def : SysReg<"mviph", 0x319>; def : SysReg<"miph", 0x354>; } // isRV32Only +} // Supervisor-level CSRs +let FeaturesRequired = [{ {RISCV::FeatureStdExtSsaia} }] in { def : SysReg<"siselect", 0x150>; def : SysReg<"sireg", 0x151>; def : SysReg<"stopei", 0x15C>; @@ -407,6 +410,7 @@ def : SysReg<"vsieh", 0x214>; def : SysReg<"vsiph", 0x254>; } // isRV32Only +} // Jump Vector Table CSR //===----------------------------------------------- diff --git a/llvm/test/MC/RISCV/hypervisor-csr-names.s b/llvm/test/MC/RISCV/hypervisor-csr-names.s --- a/llvm/test/MC/RISCV/hypervisor-csr-names.s +++ b/llvm/test/MC/RISCV/hypervisor-csr-names.s @@ -1,13 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s # -# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ################################## diff --git a/llvm/test/MC/RISCV/machine-csr-names.s b/llvm/test/MC/RISCV/machine-csr-names.s --- a/llvm/test/MC/RISCV/machine-csr-names.s +++ b/llvm/test/MC/RISCV/machine-csr-names.s @@ -1,13 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-smaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-smaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-smaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s # -# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-smaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-smaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-smaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ################################## diff --git a/llvm/test/MC/RISCV/rv32-hypervisor-csr-names.s b/llvm/test/MC/RISCV/rv32-hypervisor-csr-names.s --- a/llvm/test/MC/RISCV/rv32-hypervisor-csr-names.s +++ b/llvm/test/MC/RISCV/rv32-hypervisor-csr-names.s @@ -1,7 +1,7 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -mattr=+experimental-ssaia -triple riscv32 < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ################################## diff --git a/llvm/test/MC/RISCV/rv32-machine-csr-names.s b/llvm/test/MC/RISCV/rv32-machine-csr-names.s --- a/llvm/test/MC/RISCV/rv32-machine-csr-names.s +++ b/llvm/test/MC/RISCV/rv32-machine-csr-names.s @@ -1,7 +1,7 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-smaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -mattr=+experimental-smaia -triple riscv32 < %s \ +# RUN: | llvm-objdump --mattr=+experimental-smaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ###################################### diff --git a/llvm/test/MC/RISCV/rv32-supervisor-csr-names.s b/llvm/test/MC/RISCV/rv32-supervisor-csr-names.s --- a/llvm/test/MC/RISCV/rv32-supervisor-csr-names.s +++ b/llvm/test/MC/RISCV/rv32-supervisor-csr-names.s @@ -1,7 +1,7 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ################################## diff --git a/llvm/test/MC/RISCV/rvi-aliases-valid.s b/llvm/test/MC/RISCV/rvi-aliases-valid.s --- a/llvm/test/MC/RISCV/rvi-aliases-valid.s +++ b/llvm/test/MC/RISCV/rvi-aliases-valid.s @@ -1,22 +1,22 @@ -# RUN: llvm-mc %s -triple=riscv32 -M no-aliases \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia -M no-aliases \ # RUN: | FileCheck -check-prefixes=CHECK-S-NOALIAS,CHECK-S-OBJ-NOALIAS %s -# RUN: llvm-mc %s -triple=riscv32 \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia \ # RUN: | FileCheck -check-prefixes=CHECK-S,CHECK-S-OBJ %s -# RUN: llvm-mc %s -triple=riscv64 -M no-aliases \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-ssaia -M no-aliases \ # RUN: | FileCheck -check-prefixes=CHECK-S-NOALIAS,CHECK-S-OBJ-NOALIAS %s -# RUN: llvm-mc %s -triple=riscv64 \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-ssaia \ # RUN: | FileCheck -check-prefixes=CHECK-S,CHECK-S-OBJ %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d -r -M no-aliases - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d -r -M no-aliases - \ # RUN: | FileCheck -check-prefixes=CHECK-OBJ-NOALIAS,CHECK-S-OBJ-NOALIAS %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d -r - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d -r - \ # RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-S-OBJ %s -# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d -r -M no-aliases - \ +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d -r -M no-aliases - \ # RUN: | FileCheck -check-prefixes=CHECK-OBJ-NOALIAS,CHECK-S-OBJ-NOALIAS %s -# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d -r - \ +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-ssaia< %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d -r - \ # RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-S-OBJ %s # The following check prefixes are used in this test: diff --git a/llvm/test/MC/RISCV/supervisor-csr-names.s b/llvm/test/MC/RISCV/supervisor-csr-names.s --- a/llvm/test/MC/RISCV/supervisor-csr-names.s +++ b/llvm/test/MC/RISCV/supervisor-csr-names.s @@ -1,13 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s # -# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-ssaia -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s -# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - \ +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-ssaia < %s \ +# RUN: | llvm-objdump --mattr=+experimental-ssaia -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ##################################