summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/RISCV/RISCVInstrInfoF.td5
-rw-r--r--llvm/test/MC/RISCV/rvf-aliases-valid.s7
2 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td
index 12b1d9a857f..6d7c59becf2 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td
+++ b/llvm/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/llvm/test/MC/RISCV/rvf-aliases-valid.s b/llvm/test/MC/RISCV/rvf-aliases-valid.s
index c6da9b39909..f22b3cc7274 100644
--- a/llvm/test/MC/RISCV/rvf-aliases-valid.s
+++ b/llvm/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.
##===----------------------------------------------------------------------===##
OpenPOWER on IntegriCloud