1# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zbp -riscv-no-aliases \
2# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s
3# RUN: llvm-mc %s  -triple=riscv64 -mattr=+experimental-zbp \
4# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ %s
5# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-zbp < %s \
6# RUN:     | llvm-objdump -d -r -M no-aliases --mattr=+experimental-zbp - \
7# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s
8# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-zbp < %s \
9# RUN:     | llvm-objdump -d -r --mattr=+experimental-zbp - \
10# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ %s
11
12# The following check prefixes are used in this test:
13# CHECK-S-OBJ            Match both the .s and objdumped object output with
14#                        aliases enabled
15# CHECK-S-OBJ-NOALIAS    Match both the .s and objdumped object output with
16#                        aliases disabled
17
18# CHECK-S-OBJ-NOALIAS: zext.h t0, t1
19# CHECK-S-OBJ: zext.h t0, t1
20zext.h x5, x6
21
22# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 1
23# CHECK-S-OBJ: rev.p t0, t1
24rev.p x5, x6
25
26# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 2
27# CHECK-S-OBJ: rev2.n t0, t1
28rev2.n x5, x6
29
30# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 3
31# CHECK-S-OBJ: rev.n t0, t1
32rev.n x5, x6
33
34# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 4
35# CHECK-S-OBJ: rev4.b t0, t1
36rev4.b x5, x6
37
38# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 6
39# CHECK-S-OBJ: rev2.b t0, t1
40rev2.b x5, x6
41
42# CHECK-S-OBJ-NOALIAS: brev8 t0, t1
43# CHECK-S-OBJ: rev.b t0, t1
44rev.b x5, x6
45
46# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 8
47# CHECK-S-OBJ: rev8.h t0, t1
48rev8.h x5, x6
49
50# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 12
51# CHECK-S-OBJ: rev4.h t0, t1
52rev4.h x5, x6
53
54# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 14
55# CHECK-S-OBJ: rev2.h t0, t1
56rev2.h x5, x6
57
58# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 15
59# CHECK-S-OBJ: rev.h t0, t1
60rev.h x5, x6
61
62# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 16
63# CHECK-S-OBJ: rev16.w t0, t1
64rev16.w x5, x6
65
66# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 24
67# CHECK-S-OBJ: rev8.w t0, t1
68rev8.w x5, x6
69
70# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 28
71# CHECK-S-OBJ: rev4.w t0, t1
72rev4.w x5, x6
73
74# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 30
75# CHECK-S-OBJ: rev2.w t0, t1
76rev2.w x5, x6
77
78# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 31
79# CHECK-S-OBJ: rev.w t0, t1
80rev.w x5, x6
81
82# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 32
83# CHECK-S-OBJ: rev32 t0, t1
84rev32 x5, x6
85
86# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 48
87# CHECK-S-OBJ: rev16 t0, t1
88rev16 x5, x6
89
90# CHECK-S-OBJ-NOALIAS: rev8 t0, t1
91# CHECK-S-OBJ: rev8 t0, t1
92rev8 x5, x6
93
94# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 60
95# CHECK-S-OBJ: rev4 t0, t1
96rev4 x5, x6
97
98# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 62
99# CHECK-S-OBJ: rev2 t0, t1
100rev2 x5, x6
101
102# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 63
103# CHECK-S-OBJ: rev t0, t1
104rev x5, x6
105
106# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 1
107# CHECK-S-OBJ: zip.n t0, t1
108zip.n x5, x6
109
110# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 1
111# CHECK-S-OBJ: unzip.n t0, t1
112unzip.n x5, x6
113
114# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 2
115# CHECK-S-OBJ: zip2.b t0, t1
116zip2.b x5, x6
117
118# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 2
119# CHECK-S-OBJ: unzip2.b t0, t1
120unzip2.b x5, x6
121
122# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 3
123# CHECK-S-OBJ: zip.b t0, t1
124zip.b x5, x6
125
126# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 3
127# CHECK-S-OBJ: unzip.b t0, t1
128unzip.b x5, x6
129
130# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 4
131# CHECK-S-OBJ: zip4.h t0, t1
132zip4.h x5, x6
133
134# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 4
135# CHECK-S-OBJ: unzip4.h t0, t1
136unzip4.h x5, x6
137
138# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 6
139# CHECK-S-OBJ: zip2.h t0, t1
140zip2.h x5, x6
141
142# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 6
143# CHECK-S-OBJ: unzip2.h t0, t1
144unzip2.h x5, x6
145
146# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 7
147# CHECK-S-OBJ: zip.h t0, t1
148zip.h x5, x6
149
150# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 7
151# CHECK-S-OBJ: unzip.h t0, t1
152unzip.h x5, x6
153
154# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 8
155# CHECK-S-OBJ: zip8.w t0, t1
156zip8.w x5, x6
157
158# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 8
159# CHECK-S-OBJ: unzip8.w t0, t1
160unzip8.w x5, x6
161
162# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 12
163# CHECK-S-OBJ: zip4.w t0, t1
164zip4.w x5, x6
165
166# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 12
167# CHECK-S-OBJ: unzip4.w t0, t1
168unzip4.w x5, x6
169
170# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 14
171# CHECK-S-OBJ: zip2.w t0, t1
172zip2.w x5, x6
173
174# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 14
175# CHECK-S-OBJ: unzip2.w t0, t1
176unzip2.w x5, x6
177
178# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 15
179# CHECK-S-OBJ: zip.w t0, t1
180zip.w x5, x6
181
182# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 15
183# CHECK-S-OBJ: unzip.w t0, t1
184unzip.w x5, x6
185
186# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 16
187# CHECK-S-OBJ: zip16 t0, t1
188zip16 x5, x6
189
190# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 16
191# CHECK-S-OBJ: unzip16 t0, t1
192unzip16 x5, x6
193
194# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 24
195# CHECK-S-OBJ: zip8 t0, t1
196zip8 x5, x6
197
198# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 24
199# CHECK-S-OBJ: unzip8 t0, t1
200unzip8 x5, x6
201
202# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 28
203# CHECK-S-OBJ: zip4 t0, t1
204zip4 x5, x6
205
206# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 28
207# CHECK-S-OBJ: unzip4 t0, t1
208unzip4 x5, x6
209
210# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 30
211# CHECK-S-OBJ: zip2 t0, t1
212zip2 x5, x6
213
214# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 30
215# CHECK-S-OBJ: unzip2 t0, t1
216unzip2 x5, x6
217
218# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 31
219# CHECK-S-OBJ: zip t0, t1
220zip x5, x6
221
222# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 31
223# CHECK-S-OBJ: unzip t0, t1
224unzip x5, x6
225
226# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 1
227# CHECK-S-OBJ: orc.p t0, t1
228orc.p x5, x6
229
230# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 2
231# CHECK-S-OBJ: orc2.n t0, t1
232orc2.n x5, x6
233
234# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 3
235# CHECK-S-OBJ: orc.n t0, t1
236orc.n x5, x6
237
238# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 4
239# CHECK-S-OBJ: orc4.b t0, t1
240orc4.b x5, x6
241
242# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 6
243# CHECK-S-OBJ: orc2.b t0, t1
244orc2.b x5, x6
245
246# CHECK-S-OBJ-NOALIAS: orc.b t0, t1
247# CHECK-S-OBJ: orc.b t0, t1
248orc.b x5, x6
249
250# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 8
251# CHECK-S-OBJ: orc8.h t0, t1
252orc8.h x5, x6
253
254# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 12
255# CHECK-S-OBJ: orc4.h t0, t1
256orc4.h x5, x6
257
258# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 14
259# CHECK-S-OBJ: orc2.h t0, t1
260orc2.h x5, x6
261
262# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 15
263# CHECK-S-OBJ: orc.h t0, t1
264orc.h x5, x6
265
266# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 16
267# CHECK-S-OBJ: orc16.w t0, t1
268orc16.w x5, x6
269
270# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 24
271# CHECK-S-OBJ: orc8.w t0, t1
272orc8.w x5, x6
273
274# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 28
275# CHECK-S-OBJ: orc4.w t0, t1
276orc4.w x5, x6
277
278# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 30
279# CHECK-S-OBJ: orc2.w t0, t1
280orc2.w x5, x6
281
282# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 31
283# CHECK-S-OBJ: orc.w t0, t1
284orc.w x5, x6
285
286# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 32
287# CHECK-S-OBJ: orc32 t0, t1
288orc32 x5, x6
289
290# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 48
291# CHECK-S-OBJ: orc16 t0, t1
292orc16 x5, x6
293
294# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 56
295# CHECK-S-OBJ: orc8 t0, t1
296orc8 x5, x6
297
298# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 60
299# CHECK-S-OBJ: orc4 t0, t1
300orc4 x5, x6
301
302# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 62
303# CHECK-S-OBJ: orc2 t0, t1
304orc2 x5, x6
305
306# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 63
307# CHECK-S-OBJ: orc t0, t1
308orc x5, x6
309
310# CHECK-S-OBJ-NOALIAS: rori t0, t1, 8
311# CHECK-S-OBJ: rori t0, t1, 8
312ror x5, x6, 8
313
314# CHECK-S-OBJ-NOALIAS: roriw t0, t1, 8
315# CHECK-S-OBJ: roriw t0, t1, 8
316rorw x5, x6, 8
317
318# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 13
319# CHECK-S-OBJ: grevi t0, t1, 13
320grev x5, x6, 13
321
322# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 13
323# CHECK-S-OBJ: gorci t0, t1, 13
324gorc x5, x6, 13
325
326# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 13
327# CHECK-S-OBJ: shfli t0, t1, 13
328shfl x5, x6, 13
329
330# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 13
331# CHECK-S-OBJ: unshfli t0, t1, 13
332unshfl x5, x6, 13
333
334# CHECK-S-OBJ-NOALIAS: greviw t0, t1, 13
335# CHECK-S-OBJ: greviw t0, t1, 13
336grevw x5, x6, 13
337
338# CHECK-S-OBJ-NOALIAS: gorciw t0, t1, 13
339# CHECK-S-OBJ: gorciw t0, t1, 13
340gorcw x5, x6, 13
341