1# RUN: llvm-mc %s -triple=riscv64 -mattr=+a -riscv-no-aliases \ 2# RUN: | FileCheck -check-prefix=CHECK-INST %s 3# RUN: llvm-mc %s -triple=riscv64 -mattr=+a \ 4# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s 5# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ 6# RUN: | llvm-objdump -d --mattr=+a -M no-aliases - \ 7# RUN: | FileCheck -check-prefix=CHECK-INST %s 8# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+a < %s \ 9# RUN: | llvm-objdump -d --mattr=+a - \ 10# RUN: | FileCheck -check-prefix=CHECK-ALIAS %s 11 12# The below tests for lr.d, sc.d and amo*.d, using `0(reg)` are actually 13# implemented using a custom parser, but we test them as if they're aliases. 14 15# CHECK-INST: lr.d a1, (a0) 16# CHECK-ALIAS: lr.d a1, (a0) 17lr.d a1, 0(a0) 18 19# CHECK-INST: lr.d.aq a1, (a0) 20# CHECK-ALIAS: lr.d.aq a1, (a0) 21lr.d.aq a1, 0(a0) 22 23# CHECK-INST: lr.d.rl a1, (a0) 24# CHECK-ALIAS: lr.d.rl a1, (a0) 25lr.d.rl a1, 0(a0) 26 27# CHECK-INST: lr.d.aqrl a1, (a0) 28# CHECK-ALIAS: lr.d.aqrl a1, (a0) 29lr.d.aqrl a1, 0(a0) 30 31# CHECK-INST: sc.d a2, a1, (a0) 32# CHECK-ALIAS: sc.d a2, a1, (a0) 33sc.d a2, a1, 0(a0) 34 35# CHECK-INST: sc.d.aq a2, a1, (a0) 36# CHECK-ALIAS: sc.d.aq a2, a1, (a0) 37sc.d.aq a2, a1, 0(a0) 38 39# CHECK-INST: sc.d.rl a2, a1, (a0) 40# CHECK-ALIAS: sc.d.rl a2, a1, (a0) 41sc.d.rl a2, a1, 0(a0) 42 43# CHECK-INST: sc.d.aqrl a2, a1, (a0) 44# CHECK-ALIAS: sc.d.aqrl a2, a1, (a0) 45sc.d.aqrl a2, a1, 0(a0) 46 47# CHECK-INST: amoswap.d a2, a1, (a0) 48# CHECK-ALIAS: amoswap.d a2, a1, (a0) 49amoswap.d a2, a1, 0(a0) 50 51# CHECK-INST: amoswap.d.aq a2, a1, (a0) 52# CHECK-ALIAS: amoswap.d.aq a2, a1, (a0) 53amoswap.d.aq a2, a1, 0(a0) 54 55# CHECK-INST: amoswap.d.rl a2, a1, (a0) 56# CHECK-ALIAS: amoswap.d.rl a2, a1, (a0) 57amoswap.d.rl a2, a1, 0(a0) 58 59# CHECK-INST: amoswap.d.aqrl a2, a1, (a0) 60# CHECK-ALIAS: amoswap.d.aqrl a2, a1, (a0) 61amoswap.d.aqrl a2, a1, 0(a0) 62 63# CHECK-INST: amoadd.d a2, a1, (a0) 64# CHECK-ALIAS: amoadd.d a2, a1, (a0) 65amoadd.d a2, a1, 0(a0) 66 67# CHECK-INST: amoadd.d.aq a2, a1, (a0) 68# CHECK-ALIAS: amoadd.d.aq a2, a1, (a0) 69amoadd.d.aq a2, a1, 0(a0) 70 71# CHECK-INST: amoadd.d.rl a2, a1, (a0) 72# CHECK-ALIAS: amoadd.d.rl a2, a1, (a0) 73amoadd.d.rl a2, a1, 0(a0) 74 75# CHECK-INST: amoadd.d.aqrl a2, a1, (a0) 76# CHECK-ALIAS: amoadd.d.aqrl a2, a1, (a0) 77amoadd.d.aqrl a2, a1, 0(a0) 78 79# CHECK-INST: amoxor.d a2, a1, (a0) 80# CHECK-ALIAS: amoxor.d a2, a1, (a0) 81amoxor.d a2, a1, 0(a0) 82 83# CHECK-INST: amoxor.d.aq a2, a1, (a0) 84# CHECK-ALIAS: amoxor.d.aq a2, a1, (a0) 85amoxor.d.aq a2, a1, 0(a0) 86 87# CHECK-INST: amoxor.d.rl a2, a1, (a0) 88# CHECK-ALIAS: amoxor.d.rl a2, a1, (a0) 89amoxor.d.rl a2, a1, 0(a0) 90 91# CHECK-INST: amoxor.d.aqrl a2, a1, (a0) 92# CHECK-ALIAS: amoxor.d.aqrl a2, a1, (a0) 93amoxor.d.aqrl a2, a1, 0(a0) 94 95# CHECK-INST: amoand.d a2, a1, (a0) 96# CHECK-ALIAS: amoand.d a2, a1, (a0) 97amoand.d a2, a1, 0(a0) 98 99# CHECK-INST: amoand.d.aq a2, a1, (a0) 100# CHECK-ALIAS: amoand.d.aq a2, a1, (a0) 101amoand.d.aq a2, a1, 0(a0) 102 103# CHECK-INST: amoand.d.rl a2, a1, (a0) 104# CHECK-ALIAS: amoand.d.rl a2, a1, (a0) 105amoand.d.rl a2, a1, 0(a0) 106 107# CHECK-INST: amoand.d.aqrl a2, a1, (a0) 108# CHECK-ALIAS: amoand.d.aqrl a2, a1, (a0) 109amoand.d.aqrl a2, a1, 0(a0) 110 111# CHECK-INST: amoor.d a2, a1, (a0) 112# CHECK-ALIAS: amoor.d a2, a1, (a0) 113amoor.d a2, a1, 0(a0) 114 115# CHECK-INST: amoor.d.aq a2, a1, (a0) 116# CHECK-ALIAS: amoor.d.aq a2, a1, (a0) 117amoor.d.aq a2, a1, 0(a0) 118 119# CHECK-INST: amoor.d.rl a2, a1, (a0) 120# CHECK-ALIAS: amoor.d.rl a2, a1, (a0) 121amoor.d.rl a2, a1, 0(a0) 122 123# CHECK-INST: amoor.d.aqrl a2, a1, (a0) 124# CHECK-ALIAS: amoor.d.aqrl a2, a1, (a0) 125amoor.d.aqrl a2, a1, 0(a0) 126 127# CHECK-INST: amomin.d a2, a1, (a0) 128# CHECK-ALIAS: amomin.d a2, a1, (a0) 129amomin.d a2, a1, 0(a0) 130 131# CHECK-INST: amomin.d.aq a2, a1, (a0) 132# CHECK-ALIAS: amomin.d.aq a2, a1, (a0) 133amomin.d.aq a2, a1, 0(a0) 134 135# CHECK-INST: amomin.d.rl a2, a1, (a0) 136# CHECK-ALIAS: amomin.d.rl a2, a1, (a0) 137amomin.d.rl a2, a1, 0(a0) 138 139# CHECK-INST: amomin.d.aqrl a2, a1, (a0) 140# CHECK-ALIAS: amomin.d.aqrl a2, a1, (a0) 141amomin.d.aqrl a2, a1, 0(a0) 142 143# CHECK-INST: amomax.d a2, a1, (a0) 144# CHECK-ALIAS: amomax.d a2, a1, (a0) 145amomax.d a2, a1, 0(a0) 146 147# CHECK-INST: amomax.d.aq a2, a1, (a0) 148# CHECK-ALIAS: amomax.d.aq a2, a1, (a0) 149amomax.d.aq a2, a1, 0(a0) 150 151# CHECK-INST: amomax.d.rl a2, a1, (a0) 152# CHECK-ALIAS: amomax.d.rl a2, a1, (a0) 153amomax.d.rl a2, a1, 0(a0) 154 155# CHECK-INST: amomax.d.aqrl a2, a1, (a0) 156# CHECK-ALIAS: amomax.d.aqrl a2, a1, (a0) 157amomax.d.aqrl a2, a1, 0(a0) 158 159# CHECK-INST: amominu.d a2, a1, (a0) 160# CHECK-ALIAS: amominu.d a2, a1, (a0) 161amominu.d a2, a1, 0(a0) 162 163# CHECK-INST: amominu.d.aq a2, a1, (a0) 164# CHECK-ALIAS: amominu.d.aq a2, a1, (a0) 165amominu.d.aq a2, a1, 0(a0) 166 167# CHECK-INST: amominu.d.rl a2, a1, (a0) 168# CHECK-ALIAS: amominu.d.rl a2, a1, (a0) 169amominu.d.rl a2, a1, 0(a0) 170 171# CHECK-INST: amominu.d.aqrl a2, a1, (a0) 172# CHECK-ALIAS: amominu.d.aqrl a2, a1, (a0) 173amominu.d.aqrl a2, a1, 0(a0) 174 175# CHECK-INST: amomaxu.d a2, a1, (a0) 176# CHECK-ALIAS: amomaxu.d a2, a1, (a0) 177amomaxu.d a2, a1, 0(a0) 178 179# CHECK-INST: amomaxu.d.aq a2, a1, (a0) 180# CHECK-ALIAS: amomaxu.d.aq a2, a1, (a0) 181amomaxu.d.aq a2, a1, 0(a0) 182 183# CHECK-INST: amomaxu.d.rl a2, a1, (a0) 184# CHECK-ALIAS: amomaxu.d.rl a2, a1, (a0) 185amomaxu.d.rl a2, a1, 0(a0) 186 187# CHECK-INST: amomaxu.d.aqrl a2, a1, (a0) 188# CHECK-ALIAS: amomaxu.d.aqrl a2, a1, (a0) 189amomaxu.d.aqrl a2, a1, 0(a0) 190