1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/MC/RISCV/rv32a-valid.s
Alex Bradbury af453b57a3 [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.

llvm-svn: 320797
2017-12-15 09:47:01 +00:00

149 lines
5.0 KiB
ArmAsm

# 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 -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 -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 -riscv-no-aliases -d - \
# RUN: | FileCheck -check-prefix=CHECK-INST %s
# CHECK-INST: lr.w t0, (t1)
# CHECK: encoding: [0xaf,0x22,0x03,0x10]
lr.w t0, (t1)
# CHECK-INST: lr.w.aq t1, (t2)
# CHECK: encoding: [0x2f,0xa3,0x03,0x14]
lr.w.aq t1, (t2)
# CHECK-INST: lr.w.rl t2, (t3)
# CHECK: encoding: [0xaf,0x23,0x0e,0x12]
lr.w.rl t2, (t3)
# CHECK-INST: lr.w.aqrl t3, (t4)
# CHECK: encoding: [0x2f,0xae,0x0e,0x16]
lr.w.aqrl t3, (t4)
# CHECK-INST: sc.w t6, t5, (t4)
# CHECK: encoding: [0xaf,0xaf,0xee,0x19]
sc.w t6, t5, (t4)
# CHECK-INST: sc.w.aq t5, t4, (t3)
# CHECK: encoding: [0x2f,0x2f,0xde,0x1d]
sc.w.aq t5, t4, (t3)
# CHECK-INST: sc.w.rl t4, t3, (t2)
# CHECK: encoding: [0xaf,0xae,0xc3,0x1b]
sc.w.rl t4, t3, (t2)
# CHECK-INST: sc.w.aqrl t3, t2, (t1)
# CHECK: encoding: [0x2f,0x2e,0x73,0x1e]
sc.w.aqrl t3, t2, (t1)
# CHECK-INST: amoswap.w a4, ra, (s0)
# CHECK: encoding: [0x2f,0x27,0x14,0x08]
amoswap.w a4, ra, (s0)
# CHECK-INST: amoadd.w a1, a2, (a3)
# CHECK: encoding: [0xaf,0xa5,0xc6,0x00]
amoadd.w a1, a2, (a3)
# CHECK-INST: amoxor.w a2, a3, (a4)
# CHECK: encoding: [0x2f,0x26,0xd7,0x20]
amoxor.w a2, a3, (a4)
# CHECK-INST: amoand.w a3, a4, (a5)
# CHECK: encoding: [0xaf,0xa6,0xe7,0x60]
amoand.w a3, a4, (a5)
# CHECK-INST: amoor.w a4, a5, (a6)
# CHECK: encoding: [0x2f,0x27,0xf8,0x40]
amoor.w a4, a5, (a6)
# CHECK-INST: amomin.w a5, a6, (a7)
# CHECK: encoding: [0xaf,0xa7,0x08,0x81]
amomin.w a5, a6, (a7)
# CHECK-INST: amomax.w s7, s6, (s5)
# CHECK: encoding: [0xaf,0xab,0x6a,0xa1]
amomax.w s7, s6, (s5)
# CHECK-INST: amominu.w s6, s5, (s4)
# CHECK: encoding: [0x2f,0x2b,0x5a,0xc1]
amominu.w s6, s5, (s4)
# CHECK-INST: amomaxu.w s5, s4, (s3)
# CHECK: encoding: [0xaf,0xaa,0x49,0xe1]
amomaxu.w s5, s4, (s3)
# CHECK-INST: amoswap.w.aq a4, ra, (s0)
# CHECK: encoding: [0x2f,0x27,0x14,0x0c]
amoswap.w.aq a4, ra, (s0)
# CHECK-INST: amoadd.w.aq a1, a2, (a3)
# CHECK: encoding: [0xaf,0xa5,0xc6,0x04]
amoadd.w.aq a1, a2, (a3)
# CHECK-INST: amoxor.w.aq a2, a3, (a4)
# CHECK: encoding: [0x2f,0x26,0xd7,0x24]
amoxor.w.aq a2, a3, (a4)
# CHECK-INST: amoand.w.aq a3, a4, (a5)
# CHECK: encoding: [0xaf,0xa6,0xe7,0x64]
amoand.w.aq a3, a4, (a5)
# CHECK-INST: amoor.w.aq a4, a5, (a6)
# CHECK: encoding: [0x2f,0x27,0xf8,0x44]
amoor.w.aq a4, a5, (a6)
# CHECK-INST: amomin.w.aq a5, a6, (a7)
# CHECK: encoding: [0xaf,0xa7,0x08,0x85]
amomin.w.aq a5, a6, (a7)
# CHECK-INST: amomax.w.aq s7, s6, (s5)
# CHECK: encoding: [0xaf,0xab,0x6a,0xa5]
amomax.w.aq s7, s6, (s5)
# CHECK-INST: amominu.w.aq s6, s5, (s4)
# CHECK: encoding: [0x2f,0x2b,0x5a,0xc5]
amominu.w.aq s6, s5, (s4)
# CHECK-INST: amomaxu.w.aq s5, s4, (s3)
# CHECK: encoding: [0xaf,0xaa,0x49,0xe5]
amomaxu.w.aq s5, s4, (s3)
# CHECK-INST: amoswap.w.rl a4, ra, (s0)
# CHECK: encoding: [0x2f,0x27,0x14,0x0a]
amoswap.w.rl a4, ra, (s0)
# CHECK-INST: amoadd.w.rl a1, a2, (a3)
# CHECK: encoding: [0xaf,0xa5,0xc6,0x02]
amoadd.w.rl a1, a2, (a3)
# CHECK-INST: amoxor.w.rl a2, a3, (a4)
# CHECK: encoding: [0x2f,0x26,0xd7,0x22]
amoxor.w.rl a2, a3, (a4)
# CHECK-INST: amoand.w.rl a3, a4, (a5)
# CHECK: encoding: [0xaf,0xa6,0xe7,0x62]
amoand.w.rl a3, a4, (a5)
# CHECK-INST: amoor.w.rl a4, a5, (a6)
# CHECK: encoding: [0x2f,0x27,0xf8,0x42]
amoor.w.rl a4, a5, (a6)
# CHECK-INST: amomin.w.rl a5, a6, (a7)
# CHECK: encoding: [0xaf,0xa7,0x08,0x83]
amomin.w.rl a5, a6, (a7)
# CHECK-INST: amomax.w.rl s7, s6, (s5)
# CHECK: encoding: [0xaf,0xab,0x6a,0xa3]
amomax.w.rl s7, s6, (s5)
# CHECK-INST: amominu.w.rl s6, s5, (s4)
# CHECK: encoding: [0x2f,0x2b,0x5a,0xc3]
amominu.w.rl s6, s5, (s4)
# CHECK-INST: amomaxu.w.rl s5, s4, (s3)
# CHECK: encoding: [0xaf,0xaa,0x49,0xe3]
amomaxu.w.rl s5, s4, (s3)
# CHECK-INST: amoswap.w.aqrl a4, ra, (s0)
# CHECK: encoding: [0x2f,0x27,0x14,0x0e]
amoswap.w.aqrl a4, ra, (s0)
# CHECK-INST: amoadd.w.aqrl a1, a2, (a3)
# CHECK: encoding: [0xaf,0xa5,0xc6,0x06]
amoadd.w.aqrl a1, a2, (a3)
# CHECK-INST: amoxor.w.aqrl a2, a3, (a4)
# CHECK: encoding: [0x2f,0x26,0xd7,0x26]
amoxor.w.aqrl a2, a3, (a4)
# CHECK-INST: amoand.w.aqrl a3, a4, (a5)
# CHECK: encoding: [0xaf,0xa6,0xe7,0x66]
amoand.w.aqrl a3, a4, (a5)
# CHECK-INST: amoor.w.aqrl a4, a5, (a6)
# CHECK: encoding: [0x2f,0x27,0xf8,0x46]
amoor.w.aqrl a4, a5, (a6)
# CHECK-INST: amomin.w.aqrl a5, a6, (a7)
# CHECK: encoding: [0xaf,0xa7,0x08,0x87]
amomin.w.aqrl a5, a6, (a7)
# CHECK-INST: amomax.w.aqrl s7, s6, (s5)
# CHECK: encoding: [0xaf,0xab,0x6a,0xa7]
amomax.w.aqrl s7, s6, (s5)
# CHECK-INST: amominu.w.aqrl s6, s5, (s4)
# CHECK: encoding: [0x2f,0x2b,0x5a,0xc7]
amominu.w.aqrl s6, s5, (s4)
# CHECK-INST: amomaxu.w.aqrl s5, s4, (s3)
# CHECK: encoding: [0xaf,0xaa,0x49,0xe7]
amomaxu.w.aqrl s5, s4, (s3)