diff options
author | Alex Bradbury <asb@lowrisc.org> | 2017-12-15 09:47:01 +0000 |
---|---|---|
committer | Alex Bradbury <asb@lowrisc.org> | 2017-12-15 09:47:01 +0000 |
commit | ff43d393382e7610f425bde28a57b987d068042e (patch) | |
tree | 1528a2b6c85628b37e6e9a9d275cab2ffe841159 /test/MC | |
parent | f1b0fdfb7020d80efd4c1e7358d13c287b4f3b12 (diff) |
[RISCV] Enable emission of alias instructions by default
This patch switches the default for -riscv-no-aliases to false
and updates all affected MC and CodeGen tests. As recommended in
D41071, MC tests use the canonical instructions and the CodeGen
tests use the aliases.
Additionally, for the f and d instructions with rounding mode,
the tests for the aliased versions are moved and tightened such
that they can actually detect if alias emission is enabled.
(see D40902 for context)
Differential Revision: https://reviews.llvm.org/D41225
Patch by Mario Werner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320797 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
27 files changed, 304 insertions, 134 deletions
diff --git a/test/MC/RISCV/fixups.s b/test/MC/RISCV/fixups.s index 19cc6922d6d..c76fca51e31 100644 --- a/test/MC/RISCV/fixups.s +++ b/test/MC/RISCV/fixups.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc -triple riscv32 < %s -show-encoding \ +# RUN: llvm-mc -triple riscv32 -riscv-no-aliases < %s -show-encoding \ # RUN: | FileCheck -check-prefix=CHECK-FIXUP %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INSTR %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INSTR %s # RUN: llvm-mc -filetype=obj -triple=riscv32 %s \ # RUN: | llvm-readobj -r | FileCheck %s -check-prefix=CHECK-REL diff --git a/test/MC/RISCV/priv-valid.s b/test/MC/RISCV/priv-valid.s index e431bf3b088..88d35f2f9ff 100644 --- a/test/MC/RISCV/priv-valid.s +++ b/test/MC/RISCV/priv-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: uret # CHECK: encoding: [0x73,0x00,0x20,0x00] diff --git a/test/MC/RISCV/relocations.s b/test/MC/RISCV/relocations.s index a6009b0ad67..81affb7d223 100644 --- a/test/MC/RISCV/relocations.s +++ b/test/MC/RISCV/relocations.s @@ -1,4 +1,4 @@ -# RUN: llvm-mc -triple riscv32 -mattr=+c < %s -show-encoding \ +# RUN: llvm-mc -triple riscv32 -mattr=+c -riscv-no-aliases < %s -show-encoding \ # RUN: | FileCheck -check-prefix=INSTR -check-prefix=FIXUP %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s \ # RUN: | llvm-readobj -r | FileCheck -check-prefix=RELOC %s diff --git a/test/MC/RISCV/rv32a-valid.s b/test/MC/RISCV/rv32a-valid.s index cf94218a94e..fe53fab80ad 100644 --- a/test/MC/RISCV/rv32a-valid.s +++ b/test/MC/RISCV/rv32a-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+a -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+a -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+a < %s \ -# RUN: | llvm-objdump -mattr=+a -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+a -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ -# RUN: | llvm-objdump -mattr=+a -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+a -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: lr.w t0, (t1) # CHECK: encoding: [0xaf,0x22,0x03,0x10] diff --git a/test/MC/RISCV/rv32c-only-valid.s b/test/MC/RISCV/rv32c-only-valid.s index 319ac8f1eb8..468cfcddcb6 100644 --- a/test/MC/RISCV/rv32c-only-valid.s +++ b/test/MC/RISCV/rv32c-only-valid.s @@ -1,6 +1,6 @@ -# RUN: llvm-mc -triple=riscv32 -mattr=+c -show-encoding < %s \ +# RUN: llvm-mc -triple=riscv32 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s \ +# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c -riscv-no-aliases < %s \ # RUN: | llvm-objdump -mattr=+c -d - | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: c.jal 2046 diff --git a/test/MC/RISCV/rv32c-valid.s b/test/MC/RISCV/rv32c-valid.s index 22a2c90b889..a58959dd398 100644 --- a/test/MC/RISCV/rv32c-valid.s +++ b/test/MC/RISCV/rv32c-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc -triple=riscv32 -mattr=+c -show-encoding < %s \ +# RUN: llvm-mc -triple=riscv32 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc -triple=riscv64 -mattr=+c -show-encoding < %s \ +# RUN: llvm-mc -triple=riscv64 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+c < %s \ -# RUN: | llvm-objdump -mattr=+c -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+c -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c < %s \ -# RUN: | llvm-objdump -mattr=+c -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+c -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # TODO: more exhaustive testing of immediate encoding. diff --git a/test/MC/RISCV/rv32d-valid.s b/test/MC/RISCV/rv32d-valid.s index 8fbe96295f7..0e54b797c36 100644 --- a/test/MC/RISCV/rv32d-valid.s +++ b/test/MC/RISCV/rv32d-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+d -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+d -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+d < %s \ -# RUN: | llvm-objdump -mattr=+d -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+d -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ -# RUN: | llvm-objdump -mattr=+d -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+d -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # Support for the 'D' extension implies support for 'F' # CHECK-INST: fadd.s fs10, fs11, ft8 @@ -44,34 +46,34 @@ fsd f8, %lo(2048)(s6) # CHECK: encoding: [0xa7,0xb3,0x9b,0x3e] fsd f9, 999(s7) -# CHECK-INST: fmadd.d fa0, fa1, fa2, fa3 +# CHECK-INST: fmadd.d fa0, fa1, fa2, fa3, dyn # CHECK: encoding: [0x43,0xf5,0xc5,0x6a] -fmadd.d f10, f11, f12, f13 -# CHECK-INST: fmsub.d fa4, fa5, fa6, fa7 +fmadd.d f10, f11, f12, f13, dyn +# CHECK-INST: fmsub.d fa4, fa5, fa6, fa7, dyn # CHECK: encoding: [0x47,0xf7,0x07,0x8b] -fmsub.d f14, f15, f16, f17 -# CHECK-INST: fnmsub.d fs2, fs3, fs4, fs5 +fmsub.d f14, f15, f16, f17, dyn +# CHECK-INST: fnmsub.d fs2, fs3, fs4, fs5, dyn # CHECK: encoding: [0x4b,0xf9,0x49,0xab] -fnmsub.d f18, f19, f20, f21 -# CHECK-INST: fnmadd.d fs6, fs7, fs8, fs9 +fnmsub.d f18, f19, f20, f21, dyn +# CHECK-INST: fnmadd.d fs6, fs7, fs8, fs9, dyn # CHECK: encoding: [0x4f,0xfb,0x8b,0xcb] -fnmadd.d f22, f23, f24, f25 +fnmadd.d f22, f23, f24, f25, dyn -# CHECK-INST: fadd.d fs10, fs11, ft8 +# CHECK-INST: fadd.d fs10, fs11, ft8, dyn # CHECK: encoding: [0x53,0xfd,0xcd,0x03] -fadd.d f26, f27, f28 -# CHECK-INST: fsub.d ft9, ft10, ft11 +fadd.d f26, f27, f28, dyn +# CHECK-INST: fsub.d ft9, ft10, ft11, dyn # CHECK: encoding: [0xd3,0x7e,0xff,0x0b] -fsub.d f29, f30, f31 -# CHECK-INST: fmul.d ft0, ft1, ft2 +fsub.d f29, f30, f31, dyn +# CHECK-INST: fmul.d ft0, ft1, ft2, dyn # CHECK: encoding: [0x53,0xf0,0x20,0x12] -fmul.d ft0, ft1, ft2 -# CHECK-INST: fdiv.d ft3, ft4, ft5 +fmul.d ft0, ft1, ft2, dyn +# CHECK-INST: fdiv.d ft3, ft4, ft5, dyn # CHECK: encoding: [0xd3,0x71,0x52,0x1a] -fdiv.d ft3, ft4, ft5 -# CHECK-INST: fsqrt.d ft6, ft7 +fdiv.d ft3, ft4, ft5, dyn +# CHECK-INST: fsqrt.d ft6, ft7, dyn # CHECK: encoding: [0x53,0xf3,0x03,0x5a] -fsqrt.d ft6, ft7 +fsqrt.d ft6, ft7, dyn # CHECK-INST: fsgnj.d fs1, fa0, fa1 # CHECK: encoding: [0xd3,0x04,0xb5,0x22] fsgnj.d fs1, fa0, fa1 @@ -88,9 +90,9 @@ fmin.d fa5, fa6, fa7 # CHECK: encoding: [0x53,0x99,0x49,0x2b] fmax.d fs2, fs3, fs4 -# CHECK-INST: fcvt.s.d fs5, fs6 +# CHECK-INST: fcvt.s.d fs5, fs6, dyn # CHECK: encoding: [0xd3,0x7a,0x1b,0x40] -fcvt.s.d fs5, fs6 +fcvt.s.d fs5, fs6, dyn # CHECK-INST: fcvt.d.s fs7, fs8 # CHECK: encoding: [0xd3,0x0b,0x0c,0x42] fcvt.d.s fs7, fs8 @@ -107,9 +109,9 @@ fle.d a3, ft8, ft9 # CHECK: encoding: [0xd3,0x16,0x0f,0xe2] fclass.d a3, ft10 -# CHECK-INST: fcvt.w.d a4, ft11 +# CHECK-INST: fcvt.w.d a4, ft11, dyn # CHECK: encoding: [0x53,0xf7,0x0f,0xc2] -fcvt.w.d a4, ft11 +fcvt.w.d a4, ft11, dyn # CHECK-INST: fcvt.d.w ft0, a5 # CHECK: encoding: [0x53,0x80,0x07,0xd2] fcvt.d.w ft0, a5 @@ -154,6 +156,6 @@ fcvt.s.d fs5, fs6, rup # CHECK-INST: fcvt.w.d a4, ft11, rmm # CHECK: encoding: [0x53,0xc7,0x0f,0xc2] fcvt.w.d a4, ft11, rmm -# CHECK-INST: fcvt.wu.d a5, ft10 +# CHECK-INST: fcvt.wu.d a5, ft10, dyn # CHECK: encoding: [0xd3,0x77,0x1f,0xc2] fcvt.wu.d a5, ft10, dyn diff --git a/test/MC/RISCV/rv32dc-valid.s b/test/MC/RISCV/rv32dc-valid.s index b1ae265d6c9..b6c7bb37d26 100644 --- a/test/MC/RISCV/rv32dc-valid.s +++ b/test/MC/RISCV/rv32dc-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+c,+d -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+c,+d -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c,+d < %s \ -# RUN: | llvm-objdump -mattr=+c,+d -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+c,+d -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: c.fldsp fs0, 504(sp) # CHECK: encoding: [0x7e,0x34] diff --git a/test/MC/RISCV/rv32f-valid.s b/test/MC/RISCV/rv32f-valid.s index 398173836c5..f5da84ac2bd 100644 --- a/test/MC/RISCV/rv32f-valid.s +++ b/test/MC/RISCV/rv32f-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+f -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+f -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+f < %s \ -# RUN: | llvm-objdump -mattr=+f -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+f -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ -# RUN: | llvm-objdump -mattr=+f -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+f -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: flw ft0, 12(a0) # CHECK: encoding: [0x07,0x20,0xc5,0x00] @@ -39,34 +41,34 @@ fsw f8, %lo(2048)(s6) # CHECK: encoding: [0xa7,0xa3,0x9b,0x3e] fsw f9, 999(s7) -# CHECK-INST: fmadd.s fa0, fa1, fa2, fa3 +# CHECK-INST: fmadd.s fa0, fa1, fa2, fa3, dyn # CHECK: encoding: [0x43,0xf5,0xc5,0x68] -fmadd.s f10, f11, f12, f13 -# CHECK-INST: fmsub.s fa4, fa5, fa6, fa7 +fmadd.s f10, f11, f12, f13, dyn +# CHECK-INST: fmsub.s fa4, fa5, fa6, fa7, dyn # CHECK: encoding: [0x47,0xf7,0x07,0x89] -fmsub.s f14, f15, f16, f17 -# CHECK-INST: fnmsub.s fs2, fs3, fs4, fs5 +fmsub.s f14, f15, f16, f17, dyn +# CHECK-INST: fnmsub.s fs2, fs3, fs4, fs5, dyn # CHECK: encoding: [0x4b,0xf9,0x49,0xa9] -fnmsub.s f18, f19, f20, f21 -# CHECK-INST: fnmadd.s fs6, fs7, fs8, fs9 +fnmsub.s f18, f19, f20, f21, dyn +# CHECK-INST: fnmadd.s fs6, fs7, fs8, fs9, dyn # CHECK: encoding: [0x4f,0xfb,0x8b,0xc9] -fnmadd.s f22, f23, f24, f25 +fnmadd.s f22, f23, f24, f25, dyn -# CHECK-INST: fadd.s fs10, fs11, ft8 +# CHECK-INST: fadd.s fs10, fs11, ft8, dyn # CHECK: encoding: [0x53,0xfd,0xcd,0x01] -fadd.s f26, f27, f28 -# CHECK-INST: fsub.s ft9, ft10, ft11 +fadd.s f26, f27, f28, dyn +# CHECK-INST: fsub.s ft9, ft10, ft11, dyn # CHECK: encoding: [0xd3,0x7e,0xff,0x09] -fsub.s f29, f30, f31 -# CHECK-INST: fmul.s ft0, ft1, ft2 +fsub.s f29, f30, f31, dyn +# CHECK-INST: fmul.s ft0, ft1, ft2, dyn # CHECK: encoding: [0x53,0xf0,0x20,0x10] -fmul.s ft0, ft1, ft2 -# CHECK-INST: fdiv.s ft3, ft4, ft5 +fmul.s ft0, ft1, ft2, dyn +# CHECK-INST: fdiv.s ft3, ft4, ft5, dyn # CHECK: encoding: [0xd3,0x71,0x52,0x18] -fdiv.s ft3, ft4, ft5 -# CHECK-INST: fsqrt.s ft6, ft7 +fdiv.s ft3, ft4, ft5, dyn +# CHECK-INST: fsqrt.s ft6, ft7, dyn # CHECK: encoding: [0x53,0xf3,0x03,0x58] -fsqrt.s ft6, ft7 +fsqrt.s ft6, ft7, dyn # CHECK-INST: fsgnj.s fs1, fa0, fa1 # CHECK: encoding: [0xd3,0x04,0xb5,0x20] fsgnj.s fs1, fa0, fa1 @@ -82,12 +84,12 @@ fmin.s fa5, fa6, fa7 # CHECK-INST: fmax.s fs2, fs3, fs4 # CHECK: encoding: [0x53,0x99,0x49,0x29] fmax.s fs2, fs3, fs4 -# CHECK-INST: fcvt.w.s a0, fs5 +# CHECK-INST: fcvt.w.s a0, fs5, dyn # CHECK: encoding: [0x53,0xf5,0x0a,0xc0] -fcvt.w.s a0, fs5 -# CHECK-INST: fcvt.wu.s a1, fs6 +fcvt.w.s a0, fs5, dyn +# CHECK-INST: fcvt.wu.s a1, fs6, dyn # CHECK: encoding: [0xd3,0x75,0x1b,0xc0] -fcvt.wu.s a1, fs6 +fcvt.wu.s a1, fs6, dyn # CHECK-INST: fmv.x.w a2, fs7 # CHECK: encoding: [0x53,0x86,0x0b,0xe0] fmv.x.w a2, fs7 @@ -103,12 +105,12 @@ fle.s a3, ft8, ft9 # CHECK-INST: fclass.s a3, ft10 # CHECK: encoding: [0xd3,0x16,0x0f,0xe0] fclass.s a3, ft10 -# CHECK-INST: fcvt.s.w ft11, a4 +# CHECK-INST: fcvt.s.w ft11, a4, dyn # CHECK: encoding: [0xd3,0x7f,0x07,0xd0] -fcvt.s.w ft11, a4 -# CHECK-INST: fcvt.s.wu ft0, a5 +fcvt.s.w ft11, a4, dyn +# CHECK-INST: fcvt.s.wu ft0, a5, dyn # CHECK: encoding: [0x53,0xf0,0x17,0xd0] -fcvt.s.wu ft0, a5 +fcvt.s.wu ft0, a5, dyn # CHECK-INST: fmv.w.x ft1, a6 # CHECK: encoding: [0xd3,0x00,0x08,0xf0] fmv.w.x ft1, a6 diff --git a/test/MC/RISCV/rv32fc-valid.s b/test/MC/RISCV/rv32fc-valid.s index 7ab83aa392e..d5562062ddf 100644 --- a/test/MC/RISCV/rv32fc-valid.s +++ b/test/MC/RISCV/rv32fc-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+c,+f -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+c,+f -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c,+f < %s \ -# RUN: | llvm-objdump -mattr=+c,+f -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+c,+f -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: c.flwsp fs0, 252(sp) # CHECK: encoding: [0x7e,0x74] diff --git a/test/MC/RISCV/rv32i-aliases-invalid.s b/test/MC/RISCV/rv32i-aliases-invalid.s index 053b7f8e789..e0473ca371d 100644 --- a/test/MC/RISCV/rv32i-aliases-invalid.s +++ b/test/MC/RISCV/rv32i-aliases-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc %s -triple=riscv32 -riscv-no-aliases 2>&1 | FileCheck %s -# RUN: not llvm-mc %s -triple=riscv32 -riscv-no-aliases=false 2>&1 | FileCheck %s +# RUN: not llvm-mc %s -triple=riscv32 2>&1 | FileCheck %s # TODO ld # TODO sd diff --git a/test/MC/RISCV/rv32i-aliases-valid.s b/test/MC/RISCV/rv32i-aliases-valid.s index 18b8718ef43..f4f35c543ac 100644 --- a/test/MC/RISCV/rv32i-aliases-valid.s +++ b/test/MC/RISCV/rv32i-aliases-valid.s @@ -1,12 +1,12 @@ # RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases \ # RUN: | FileCheck -check-prefixes=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv32 \ # RUN: | FileCheck -check-prefixes=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases - \ +# RUN: | llvm-objdump -riscv-no-aliases -d - \ # RUN: | FileCheck -check-prefixes=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefixes=CHECK-ALIAS %s # CHECK-INST: csrrs t4, 3202, zero diff --git a/test/MC/RISCV/rv32i-valid.s b/test/MC/RISCV/rv32i-valid.s index be6560062bb..5171b5e06f4 100644 --- a/test/MC/RISCV/rv32i-valid.s +++ b/test/MC/RISCV/rv32i-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: lui a0, 2 # CHECK: encoding: [0x37,0x25,0x00,0x00] diff --git a/test/MC/RISCV/rv32m-valid.s b/test/MC/RISCV/rv32m-valid.s index 70c1c29d3ad..385c4d86cd3 100644 --- a/test/MC/RISCV/rv32m-valid.s +++ b/test/MC/RISCV/rv32m-valid.s @@ -1,11 +1,13 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+m -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+m -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+m -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+m -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+m < %s \ -# RUN: | llvm-objdump -mattr=+m -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+m -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+m < %s \ -# RUN: | llvm-objdump -mattr=+m -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+m -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: mul a4, ra, s0 # CHECK: encoding: [0x33,0x87,0x80,0x02] diff --git a/test/MC/RISCV/rv64a-valid.s b/test/MC/RISCV/rv64a-valid.s index 18299548ffa..3203d6e6d3f 100644 --- a/test/MC/RISCV/rv64a-valid.s +++ b/test/MC/RISCV/rv64a-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ -# RUN: | llvm-objdump -mattr=+a -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+a -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: not llvm-mc -triple riscv32 -mattr=+a < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s diff --git a/test/MC/RISCV/rv64c-valid.s b/test/MC/RISCV/rv64c-valid.s index c32ea144cb7..aa4f710eb55 100644 --- a/test/MC/RISCV/rv64c-valid.s +++ b/test/MC/RISCV/rv64c-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc -triple=riscv64 -mattr=+c -show-encoding < %s \ +# RUN: llvm-mc -triple=riscv64 -mattr=+c -riscv-no-aliases -show-encoding < %s \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+c < %s \ -# RUN: | llvm-objdump -mattr=+c -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+c -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # TODO: more exhaustive testing of immediate encoding. diff --git a/test/MC/RISCV/rv64d-aliases-valid.s b/test/MC/RISCV/rv64d-aliases-valid.s new file mode 100644 index 00000000000..f6c5663eac7 --- /dev/null +++ b/test/MC/RISCV/rv64d-aliases-valid.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -riscv-no-aliases \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s +# RUN: llvm-mc %s -triple=riscv64 -mattr=+d \ +# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ +# RUN: | llvm-objdump -d -mattr=+d -riscv-no-aliases - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ +# RUN: | llvm-objdump -d -mattr=+d - \ +# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s + +##===----------------------------------------------------------------------===## +## Aliases which omit the rounding mode. +##===----------------------------------------------------------------------===## + +# CHECK-INST: fcvt.l.d a0, ft0, dyn +# CHECK-ALIAS: fcvt.l.d a0, ft0{{[[:space:]]}} +fcvt.l.d a0, ft0 +# CHECK-INST: fcvt.lu.d a1, ft1, dyn +# CHECK-ALIAS: fcvt.lu.d a1, ft1{{[[:space:]]}} +fcvt.lu.d a1, ft1 +# CHECK-INST: fcvt.d.l ft3, a3, dyn +# CHECK-ALIAS: fcvt.d.l ft3, a3{{[[:space:]]}} +fcvt.d.l ft3, a3 +# CHECK-INST: fcvt.d.lu ft4, a4, dyn +# CHECK-ALIAS: fcvt.d.lu ft4, a4{{[[:space:]]}} +fcvt.d.lu ft4, a4 diff --git a/test/MC/RISCV/rv64d-valid.s b/test/MC/RISCV/rv64d-valid.s index e24fd250d43..c8dd5696f47 100644 --- a/test/MC/RISCV/rv64d-valid.s +++ b/test/MC/RISCV/rv64d-valid.s @@ -1,30 +1,31 @@ -# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ -# RUN: | llvm-objdump -mattr=+d -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+d -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: not llvm-mc -triple riscv32 -mattr=+d < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s -# CHECK-INST: fcvt.l.d a0, ft0 +# CHECK-INST: fcvt.l.d a0, ft0, dyn # CHECK: encoding: [0x53,0x75,0x20,0xc2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.l.d a0, ft0 -# CHECK-INST: fcvt.lu.d a1, ft1 +fcvt.l.d a0, ft0, dyn +# CHECK-INST: fcvt.lu.d a1, ft1, dyn # CHECK: encoding: [0xd3,0xf5,0x30,0xc2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.lu.d a1, ft1 +fcvt.lu.d a1, ft1, dyn # CHECK-INST: fmv.x.d a2, ft2 # CHECK: encoding: [0x53,0x06,0x01,0xe2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled fmv.x.d a2, ft2 -# CHECK-INST: fcvt.d.l ft3, a3 +# CHECK-INST: fcvt.d.l ft3, a3, dyn # CHECK: encoding: [0xd3,0xf1,0x26,0xd2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.d.l ft3, a3 -# CHECK-INST: fcvt.d.lu ft4, a4 +fcvt.d.l ft3, a3, dyn +# CHECK-INST: fcvt.d.lu ft4, a4, dyn # CHECK: encoding: [0x53,0x72,0x37,0xd2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.d.lu ft4, a4 +fcvt.d.lu ft4, a4, dyn # CHECK-INST: fmv.d.x ft5, a5 # CHECK: encoding: [0xd3,0x82,0x07,0xf2] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled diff --git a/test/MC/RISCV/rv64f-aliases-valid.s b/test/MC/RISCV/rv64f-aliases-valid.s new file mode 100644 index 00000000000..c9c2a4b6d74 --- /dev/null +++ b/test/MC/RISCV/rv64f-aliases-valid.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -riscv-no-aliases \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s +# RUN: llvm-mc %s -triple=riscv64 -mattr=+f \ +# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ +# RUN: | llvm-objdump -d -mattr=+f -riscv-no-aliases - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s +# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ +# RUN: | llvm-objdump -d -mattr=+f - \ +# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s + +##===----------------------------------------------------------------------===## +## Aliases which omit the rounding mode. +##===----------------------------------------------------------------------===## + +# CHECK-INST: fcvt.l.s a0, ft0, dyn +# CHECK-ALIAS: fcvt.l.s a0, ft0{{[[:space:]]}} +fcvt.l.s a0, ft0 +# CHECK-INST: fcvt.lu.s a1, ft1, dyn +# CHECK-ALIAS: fcvt.lu.s a1, ft1{{[[:space:]]}} +fcvt.lu.s a1, ft1 +# CHECK-INST: fcvt.s.l ft2, a2, dyn +# CHECK-ALIAS: fcvt.s.l ft2, a2{{[[:space:]]}} +fcvt.s.l ft2, a2 +# CHECK-INST: fcvt.s.lu ft3, a3, dyn +# CHECK-ALIAS: fcvt.s.lu ft3, a3{{[[:space:]]}} +fcvt.s.lu ft3, a3 diff --git a/test/MC/RISCV/rv64f-valid.s b/test/MC/RISCV/rv64f-valid.s index eda826dfd97..69b503bef80 100644 --- a/test/MC/RISCV/rv64f-valid.s +++ b/test/MC/RISCV/rv64f-valid.s @@ -1,26 +1,27 @@ -# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ -# RUN: | llvm-objdump -mattr=+f -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+f -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: not llvm-mc -triple riscv32 -mattr=+f < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s -# CHECK-INST: fcvt.l.s a0, ft0 +# CHECK-INST: fcvt.l.s a0, ft0, dyn # CHECK: encoding: [0x53,0x75,0x20,0xc0] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.l.s a0, ft0 -# CHECK-INST: fcvt.lu.s a1, ft1 +fcvt.l.s a0, ft0, dyn +# CHECK-INST: fcvt.lu.s a1, ft1, dyn # CHECK: encoding: [0xd3,0xf5,0x30,0xc0] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.lu.s a1, ft1 -# CHECK-INST: fcvt.s.l ft2, a2 +fcvt.lu.s a1, ft1, dyn +# CHECK-INST: fcvt.s.l ft2, a2, dyn # CHECK: encoding: [0x53,0x71,0x26,0xd0] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.s.l ft2, a2 -# CHECK-INST: fcvt.s.lu ft3, a3 +fcvt.s.l ft2, a2, dyn +# CHECK-INST: fcvt.s.lu ft3, a3, dyn # CHECK: encoding: [0xd3,0xf1,0x36,0xd0] # CHECK-RV32: :[[@LINE+1]]:1: error: instruction use requires an option to be enabled -fcvt.s.lu ft3, a3 +fcvt.s.lu ft3, a3, dyn # Rounding modes # CHECK-INST: fcvt.l.s a4, ft4, rne diff --git a/test/MC/RISCV/rv64i-aliases-invalid.s b/test/MC/RISCV/rv64i-aliases-invalid.s index 9b348eeb464..f8e3991f1c9 100644 --- a/test/MC/RISCV/rv64i-aliases-invalid.s +++ b/test/MC/RISCV/rv64i-aliases-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc %s -triple=riscv64 -riscv-no-aliases 2>&1 | FileCheck %s -# RUN: not llvm-mc %s -triple=riscv64 -riscv-no-aliases=false 2>&1 | FileCheck %s +# RUN: not llvm-mc %s -triple=riscv64 2>&1 | FileCheck %s rdinstreth x29 # CHECK: :[[@LINE]]:1: error: instruction use requires an option to be enabled rdcycleh x27 # CHECK: :[[@LINE]]:1: error: instruction use requires an option to be enabled diff --git a/test/MC/RISCV/rv64i-aliases-valid.s b/test/MC/RISCV/rv64i-aliases-valid.s index 00e92ea8e1c..953493e147b 100644 --- a/test/MC/RISCV/rv64i-aliases-valid.s +++ b/test/MC/RISCV/rv64i-aliases-valid.s @@ -1,12 +1,12 @@ # RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv64 \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases - \ +# RUN: | llvm-objdump -riscv-no-aliases -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # TODO ld diff --git a/test/MC/RISCV/rv64i-valid.s b/test/MC/RISCV/rv64i-valid.s index d33b1d1ef43..57868c41bea 100644 --- a/test/MC/RISCV/rv64i-valid.s +++ b/test/MC/RISCV/rv64i-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc %s -triple=riscv64 -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: lwu zero, 4(ra) # CHECK: encoding: [0x03,0xe0,0x40,0x00] diff --git a/test/MC/RISCV/rv64m-valid.s b/test/MC/RISCV/rv64m-valid.s index 3de540dac21..b34666c0310 100644 --- a/test/MC/RISCV/rv64m-valid.s +++ b/test/MC/RISCV/rv64m-valid.s @@ -1,7 +1,8 @@ -# RUN: llvm-mc %s -triple=riscv64 -mattr=+m -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+m -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+m < %s \ -# RUN: | llvm-objdump -mattr=+m -d - | FileCheck -check-prefix=CHECK-INST %s +# RUN: | llvm-objdump -mattr=+m -riscv-no-aliases -d - \ +# RUN: | FileCheck -check-prefix=CHECK-INST %s # CHECK-INST: mulw ra, sp, gp # CHECK: encoding: [0xbb,0x00,0x31,0x02] diff --git a/test/MC/RISCV/rvd-aliases-valid.s b/test/MC/RISCV/rvd-aliases-valid.s index e0006d6c98c..29601048ec9 100644 --- a/test/MC/RISCV/rvd-aliases-valid.s +++ b/test/MC/RISCV/rvd-aliases-valid.s @@ -1,24 +1,28 @@ # RUN: llvm-mc %s -triple=riscv32 -mattr=+d -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv32 -mattr=+d -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+d \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc %s -triple=riscv64 -mattr=+d -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+d -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+d \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+d < %s \ # RUN: | llvm-objdump -d -mattr=+d -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+d < %s \ -# RUN: | llvm-objdump -d -mattr=+d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d -mattr=+d - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ # RUN: | llvm-objdump -d -mattr=+d -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+d < %s \ -# RUN: | llvm-objdump -d -mattr=+d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d -mattr=+d - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s +##===----------------------------------------------------------------------===## +## Assembler Pseudo Instructions (User-Level ISA, Version 2.2, Chapter 20) +##===----------------------------------------------------------------------===## + # TODO fld # TODO fsd @@ -31,3 +35,44 @@ fabs.d f1, f2 # CHECK-INST: fsgnjn.d ft2, ft3, ft3 # CHECK-ALIAS: fneg.d ft2, ft3 fneg.d f2, f3 + +##===----------------------------------------------------------------------===## +## Aliases which omit the rounding mode. +##===----------------------------------------------------------------------===## + +# CHECK-INST: fmadd.d fa0, fa1, fa2, fa3, dyn +# CHECK-ALIAS: fmadd.d fa0, fa1, fa2, fa3{{[[:space:]]}} +fmadd.d f10, f11, f12, f13 +# CHECK-INST: fmsub.d fa4, fa5, fa6, fa7, dyn +# CHECK-ALIAS: fmsub.d fa4, fa5, fa6, fa7{{[[:space:]]}} +fmsub.d f14, f15, f16, f17 +# CHECK-INST: fnmsub.d fs2, fs3, fs4, fs5, dyn +# CHECK-ALIAS: fnmsub.d fs2, fs3, fs4, fs5{{[[:space:]]}} +fnmsub.d f18, f19, f20, f21 +# CHECK-INST: fnmadd.d fs6, fs7, fs8, fs9, dyn +# CHECK-ALIAS: fnmadd.d fs6, fs7, fs8, fs9{{[[:space:]]}} +fnmadd.d f22, f23, f24, f25 +# CHECK-INST: fadd.d fs10, fs11, ft8, dyn +# CHECK-ALIAS: fadd.d fs10, fs11, ft8{{[[:space:]]}} +fadd.d f26, f27, f28 +# CHECK-INST: fsub.d ft9, ft10, ft11, dyn +# CHECK-ALIAS: fsub.d ft9, ft10, ft11{{[[:space:]]}} +fsub.d f29, f30, f31 +# CHECK-INST: fmul.d ft0, ft1, ft2, dyn +# CHECK-ALIAS: fmul.d ft0, ft1, ft2{{[[:space:]]}} +fmul.d ft0, ft1, ft2 +# CHECK-INST: fdiv.d ft3, ft4, ft5, dyn +# CHECK-ALIAS: fdiv.d ft3, ft4, ft5{{[[:space:]]}} +fdiv.d ft3, ft4, ft5 +# CHECK-INST: fsqrt.d ft6, ft7, dyn +# CHECK-ALIAS: fsqrt.d ft6, ft7{{[[:space:]]}} +fsqrt.d ft6, ft7 +# CHECK-INST: fcvt.s.d fs5, fs6, dyn +# CHECK-ALIAS: fcvt.s.d fs5, fs6{{[[:space:]]}} +fcvt.s.d fs5, fs6 +# CHECK-INST: fcvt.w.d a4, ft11, dyn +# CHECK-ALIAS: fcvt.w.d a4, ft11{{[[:space:]]}} +fcvt.w.d a4, ft11 +# CHECK-INST: fcvt.wu.d a5, ft10, dyn +# CHECK-ALIAS: fcvt.wu.d a5, ft10{{[[:space:]]}} +fcvt.wu.d a5, ft10 diff --git a/test/MC/RISCV/rvf-aliases-valid.s b/test/MC/RISCV/rvf-aliases-valid.s index 2806bd75710..d306eb77e09 100644 --- a/test/MC/RISCV/rvf-aliases-valid.s +++ b/test/MC/RISCV/rvf-aliases-valid.s @@ -1,24 +1,28 @@ # RUN: llvm-mc %s -triple=riscv32 -mattr=+f -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv32 -mattr=+f -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+f \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc %s -triple=riscv64 -mattr=+f -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+f -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+f \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+f < %s \ # RUN: | llvm-objdump -d -mattr=+f -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+f < %s \ -# RUN: | llvm-objdump -d -mattr=+f -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d -mattr=+f - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ # RUN: | llvm-objdump -d -mattr=+f -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+f < %s \ -# RUN: | llvm-objdump -d -mattr=+f -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d -mattr=+f - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s +##===----------------------------------------------------------------------===## +## Assembler Pseudo Instructions (User-Level ISA, Version 2.2, Chapter 20) +##===----------------------------------------------------------------------===## + # TODO flw # TODO fsw @@ -75,3 +79,47 @@ fsflagsi x14, 0x1d # CHECK-INST: csrrwi zero, 1, 28 # CHECK-ALIAS: fsflagsi 28 fsflagsi 0x1c + +##===----------------------------------------------------------------------===## +## Aliases which omit the rounding mode. +##===----------------------------------------------------------------------===## + +# CHECK-INST: fmadd.s fa0, fa1, fa2, fa3, dyn +# CHECK-ALIAS: fmadd.s fa0, fa1, fa2, fa3{{[[:space:]]}} +fmadd.s f10, f11, f12, f13 +# CHECK-INST: fmsub.s fa4, fa5, fa6, fa7, dyn +# CHECK-ALIAS: fmsub.s fa4, fa5, fa6, fa7{{[[:space:]]}} +fmsub.s f14, f15, f16, f17 +# CHECK-INST: fnmsub.s fs2, fs3, fs4, fs5, dyn +# CHECK-ALIAS: fnmsub.s fs2, fs3, fs4, fs5{{[[:space:]]}} +fnmsub.s f18, f19, f20, f21 +# CHECK-INST: fnmadd.s fs6, fs7, fs8, fs9, dyn +# CHECK-ALIAS: fnmadd.s fs6, fs7, fs8, fs9{{[[:space:]]}} +fnmadd.s f22, f23, f24, f25 +# CHECK-INST: fadd.s fs10, fs11, ft8, dyn +# CHECK-ALIAS: fadd.s fs10, fs11, ft8{{[[:space:]]}} +fadd.s f26, f27, f28 +# CHECK-INST: fsub.s ft9, ft10, ft11, dyn +# CHECK-ALIAS: fsub.s ft9, ft10, ft11{{[[:space:]]}} +fsub.s f29, f30, f31 +# CHECK-INST: fmul.s ft0, ft1, ft2, dyn +# CHECK-ALIAS: fmul.s ft0, ft1, ft2{{[[:space:]]}} +fmul.s ft0, ft1, ft2 +# CHECK-INST: fdiv.s ft3, ft4, ft5, dyn +# CHECK-ALIAS: fdiv.s ft3, ft4, ft5{{[[:space:]]}} +fdiv.s ft3, ft4, ft5 +# CHECK-INST: fsqrt.s ft6, ft7, dyn +# CHECK-ALIAS: fsqrt.s ft6, ft7{{[[:space:]]}} +fsqrt.s ft6, ft7 +# CHECK-INST: fcvt.w.s a0, fs5, dyn +# CHECK-ALIAS: fcvt.w.s a0, fs5{{[[:space:]]}} +fcvt.w.s a0, fs5 +# CHECK-INST: fcvt.wu.s a1, fs6, dyn +# CHECK-ALIAS: fcvt.wu.s a1, fs6{{[[:space:]]}} +fcvt.wu.s a1, fs6 +# CHECK-INST: fcvt.s.w ft11, a4, dyn +# CHECK-ALIAS: fcvt.s.w ft11, a4{{[[:space:]]}} +fcvt.s.w ft11, a4 +# CHECK-INST: fcvt.s.wu ft0, a5, dyn +# CHECK-ALIAS: fcvt.s.wu ft0, a5{{[[:space:]]}} +fcvt.s.wu ft0, a5 diff --git a/test/MC/RISCV/rvi-aliases-valid.s b/test/MC/RISCV/rvi-aliases-valid.s index 08d0f8c6590..72ed72eab27 100644 --- a/test/MC/RISCV/rvi-aliases-valid.s +++ b/test/MC/RISCV/rvi-aliases-valid.s @@ -1,22 +1,22 @@ # RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv32 \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases\ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases=false \ +# RUN: llvm-mc %s -triple=riscv64 \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ # RUN: | llvm-objdump -d -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ # RUN: | llvm-objdump -d -riscv-no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 < %s \ -# RUN: | llvm-objdump -d -riscv-no-aliases=false - \ +# RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # TODO la |