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