# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -riscv-no-aliases \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc %s -triple=riscv64 -mattr=+a \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ # RUN: | llvm-objdump -d --mattr=+a -M no-aliases - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s # RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ # RUN: | llvm-objdump -d --mattr=+a - \ # RUN: | FileCheck -check-prefix=CHECK-ALIAS %s # The below tests for lr.d, sc.d and amo*.d, using `0(reg)` are actually # implemented using a custom parser, but we test them as if they're aliases. # CHECK-INST: lr.d a1, (a0) # CHECK-ALIAS: lr.d a1, (a0) lr.d a1, 0(a0) # CHECK-INST: lr.d.aq a1, (a0) # CHECK-ALIAS: lr.d.aq a1, (a0) lr.d.aq a1, 0(a0) # CHECK-INST: lr.d.rl a1, (a0) # CHECK-ALIAS: lr.d.rl a1, (a0) lr.d.rl a1, 0(a0) # CHECK-INST: lr.d.aqrl a1, (a0) # CHECK-ALIAS: lr.d.aqrl a1, (a0) lr.d.aqrl a1, 0(a0) # CHECK-INST: sc.d a2, a1, (a0) # CHECK-ALIAS: sc.d a2, a1, (a0) sc.d a2, a1, 0(a0) # CHECK-INST: sc.d.aq a2, a1, (a0) # CHECK-ALIAS: sc.d.aq a2, a1, (a0) sc.d.aq a2, a1, 0(a0) # CHECK-INST: sc.d.rl a2, a1, (a0) # CHECK-ALIAS: sc.d.rl a2, a1, (a0) sc.d.rl a2, a1, 0(a0) # CHECK-INST: sc.d.aqrl a2, a1, (a0) # CHECK-ALIAS: sc.d.aqrl a2, a1, (a0) sc.d.aqrl a2, a1, 0(a0) # CHECK-INST: amoswap.d a2, a1, (a0) # CHECK-ALIAS: amoswap.d a2, a1, (a0) amoswap.d a2, a1, 0(a0) # CHECK-INST: amoswap.d.aq a2, a1, (a0) # CHECK-ALIAS: amoswap.d.aq a2, a1, (a0) amoswap.d.aq a2, a1, 0(a0) # CHECK-INST: amoswap.d.rl a2, a1, (a0) # CHECK-ALIAS: amoswap.d.rl a2, a1, (a0) amoswap.d.rl a2, a1, 0(a0) # CHECK-INST: amoswap.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amoswap.d.aqrl a2, a1, (a0) amoswap.d.aqrl a2, a1, 0(a0) # CHECK-INST: amoadd.d a2, a1, (a0) # CHECK-ALIAS: amoadd.d a2, a1, (a0) amoadd.d a2, a1, 0(a0) # CHECK-INST: amoadd.d.aq a2, a1, (a0) # CHECK-ALIAS: amoadd.d.aq a2, a1, (a0) amoadd.d.aq a2, a1, 0(a0) # CHECK-INST: amoadd.d.rl a2, a1, (a0) # CHECK-ALIAS: amoadd.d.rl a2, a1, (a0) amoadd.d.rl a2, a1, 0(a0) # CHECK-INST: amoadd.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amoadd.d.aqrl a2, a1, (a0) amoadd.d.aqrl a2, a1, 0(a0) # CHECK-INST: amoxor.d a2, a1, (a0) # CHECK-ALIAS: amoxor.d a2, a1, (a0) amoxor.d a2, a1, 0(a0) # CHECK-INST: amoxor.d.aq a2, a1, (a0) # CHECK-ALIAS: amoxor.d.aq a2, a1, (a0) amoxor.d.aq a2, a1, 0(a0) # CHECK-INST: amoxor.d.rl a2, a1, (a0) # CHECK-ALIAS: amoxor.d.rl a2, a1, (a0) amoxor.d.rl a2, a1, 0(a0) # CHECK-INST: amoxor.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amoxor.d.aqrl a2, a1, (a0) amoxor.d.aqrl a2, a1, 0(a0) # CHECK-INST: amoand.d a2, a1, (a0) # CHECK-ALIAS: amoand.d a2, a1, (a0) amoand.d a2, a1, 0(a0) # CHECK-INST: amoand.d.aq a2, a1, (a0) # CHECK-ALIAS: amoand.d.aq a2, a1, (a0) amoand.d.aq a2, a1, 0(a0) # CHECK-INST: amoand.d.rl a2, a1, (a0) # CHECK-ALIAS: amoand.d.rl a2, a1, (a0) amoand.d.rl a2, a1, 0(a0) # CHECK-INST: amoand.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amoand.d.aqrl a2, a1, (a0) amoand.d.aqrl a2, a1, 0(a0) # CHECK-INST: amoor.d a2, a1, (a0) # CHECK-ALIAS: amoor.d a2, a1, (a0) amoor.d a2, a1, 0(a0) # CHECK-INST: amoor.d.aq a2, a1, (a0) # CHECK-ALIAS: amoor.d.aq a2, a1, (a0) amoor.d.aq a2, a1, 0(a0) # CHECK-INST: amoor.d.rl a2, a1, (a0) # CHECK-ALIAS: amoor.d.rl a2, a1, (a0) amoor.d.rl a2, a1, 0(a0) # CHECK-INST: amoor.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amoor.d.aqrl a2, a1, (a0) amoor.d.aqrl a2, a1, 0(a0) # CHECK-INST: amomin.d a2, a1, (a0) # CHECK-ALIAS: amomin.d a2, a1, (a0) amomin.d a2, a1, 0(a0) # CHECK-INST: amomin.d.aq a2, a1, (a0) # CHECK-ALIAS: amomin.d.aq a2, a1, (a0) amomin.d.aq a2, a1, 0(a0) # CHECK-INST: amomin.d.rl a2, a1, (a0) # CHECK-ALIAS: amomin.d.rl a2, a1, (a0) amomin.d.rl a2, a1, 0(a0) # CHECK-INST: amomin.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amomin.d.aqrl a2, a1, (a0) amomin.d.aqrl a2, a1, 0(a0) # CHECK-INST: amomax.d a2, a1, (a0) # CHECK-ALIAS: amomax.d a2, a1, (a0) amomax.d a2, a1, 0(a0) # CHECK-INST: amomax.d.aq a2, a1, (a0) # CHECK-ALIAS: amomax.d.aq a2, a1, (a0) amomax.d.aq a2, a1, 0(a0) # CHECK-INST: amomax.d.rl a2, a1, (a0) # CHECK-ALIAS: amomax.d.rl a2, a1, (a0) amomax.d.rl a2, a1, 0(a0) # CHECK-INST: amomax.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amomax.d.aqrl a2, a1, (a0) amomax.d.aqrl a2, a1, 0(a0) # CHECK-INST: amominu.d a2, a1, (a0) # CHECK-ALIAS: amominu.d a2, a1, (a0) amominu.d a2, a1, 0(a0) # CHECK-INST: amominu.d.aq a2, a1, (a0) # CHECK-ALIAS: amominu.d.aq a2, a1, (a0) amominu.d.aq a2, a1, 0(a0) # CHECK-INST: amominu.d.rl a2, a1, (a0) # CHECK-ALIAS: amominu.d.rl a2, a1, (a0) amominu.d.rl a2, a1, 0(a0) # CHECK-INST: amominu.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amominu.d.aqrl a2, a1, (a0) amominu.d.aqrl a2, a1, 0(a0) # CHECK-INST: amomaxu.d a2, a1, (a0) # CHECK-ALIAS: amomaxu.d a2, a1, (a0) amomaxu.d a2, a1, 0(a0) # CHECK-INST: amomaxu.d.aq a2, a1, (a0) # CHECK-ALIAS: amomaxu.d.aq a2, a1, (a0) amomaxu.d.aq a2, a1, 0(a0) # CHECK-INST: amomaxu.d.rl a2, a1, (a0) # CHECK-ALIAS: amomaxu.d.rl a2, a1, (a0) amomaxu.d.rl a2, a1, 0(a0) # CHECK-INST: amomaxu.d.aqrl a2, a1, (a0) # CHECK-ALIAS: amomaxu.d.aqrl a2, a1, (a0) amomaxu.d.aqrl a2, a1, 0(a0)