diff --git a/lib/Target/RISCV/RISCVInstrInfoF.td b/lib/Target/RISCV/RISCVInstrInfoF.td index 12b1d9a857f..6d7c59becf2 100644 --- a/lib/Target/RISCV/RISCVInstrInfoF.td +++ b/lib/Target/RISCV/RISCVInstrInfoF.td @@ -226,6 +226,11 @@ def : InstAlias<"fsflags $rd, $rs", (CSRRW GPR:$rd, 0x001, GPR:$rs)>; def : InstAlias<"fsflags $rs", (CSRRW X0, 0x001, GPR:$rs), 2>; def : InstAlias<"fsflagsi $rd, $imm", (CSRRWI GPR:$rd, 0x001, uimm5:$imm)>; def : InstAlias<"fsflagsi $imm", (CSRRWI X0, 0x001, uimm5:$imm), 2>; + +// fmv.w.x and fmv.x.w were previously known as fmv.s.x and fmv.x.s. Both +// spellings should be supported by standard tools. +def : MnemonicAlias<"fmv.s.x", "fmv.w.x">; +def : MnemonicAlias<"fmv.x.s", "fmv.x.w">; } // Predicates = [HasStdExtF] //===----------------------------------------------------------------------===// diff --git a/test/MC/RISCV/rvf-aliases-valid.s b/test/MC/RISCV/rvf-aliases-valid.s index c6da9b39909..f22b3cc7274 100644 --- a/test/MC/RISCV/rvf-aliases-valid.s +++ b/test/MC/RISCV/rvf-aliases-valid.s @@ -87,6 +87,13 @@ fsflagsi x14, 0x1d # CHECK-ALIAS: fsflagsi 28 fsflagsi 0x1c +# CHECK-INST: fmv.x.w a2, fs7 +# CHECK-ALIAS: fmv.x.w a2, fs7 +fmv.x.s a2, fs7 +# CHECK-INST: fmv.w.x ft1, a6 +# CHECK-ALIAS: fmv.w.x ft1, a6 +fmv.s.x ft1, a6 + ##===----------------------------------------------------------------------===## ## Aliases which omit the rounding mode. ##===----------------------------------------------------------------------===##