1# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zbp -riscv-no-aliases \
2# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s
3# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zbp \
4# RUN:     | FileCheck -check-prefixes=CHECK-S-OBJ %s
5# RUN: llvm-mc -filetype=obj -triple riscv32 -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 riscv32 -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: grevi t0, t1, 7
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 t0, t1
64rev16 x5, x6
65
66# CHECK-S-OBJ-NOALIAS: rev8 t0, t1
67# CHECK-S-OBJ: rev8 t0, t1
68rev8 x5, x6
69
70# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 28
71# CHECK-S-OBJ: rev4 t0, t1
72rev4 x5, x6
73
74# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 30
75# CHECK-S-OBJ: rev2 t0, t1
76rev2 x5, x6
77
78# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 31
79# CHECK-S-OBJ: rev t0, t1
80rev x5, x6
81
82# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 1
83# CHECK-S-OBJ: zip.n t0, t1
84zip.n x5, x6
85
86# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 1
87# CHECK-S-OBJ: unzip.n t0, t1
88unzip.n x5, x6
89
90# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 2
91# CHECK-S-OBJ: zip2.b t0, t1
92zip2.b x5, x6
93
94# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 2
95# CHECK-S-OBJ: unzip2.b t0, t1
96unzip2.b x5, x6
97
98# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 3
99# CHECK-S-OBJ: zip.b t0, t1
100zip.b x5, x6
101
102# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 3
103# CHECK-S-OBJ: unzip.b t0, t1
104unzip.b x5, x6
105
106# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 4
107# CHECK-S-OBJ: zip4.h t0, t1
108zip4.h x5, x6
109
110# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 4
111# CHECK-S-OBJ: unzip4.h t0, t1
112unzip4.h x5, x6
113
114# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 6
115# CHECK-S-OBJ: zip2.h t0, t1
116zip2.h x5, x6
117
118# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 6
119# CHECK-S-OBJ: unzip2.h t0, t1
120unzip2.h x5, x6
121
122# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 7
123# CHECK-S-OBJ: zip.h t0, t1
124zip.h x5, x6
125
126# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 7
127# CHECK-S-OBJ: unzip.h t0, t1
128unzip.h x5, x6
129
130# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 8
131# CHECK-S-OBJ: zip8 t0, t1
132zip8 x5, x6
133
134# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 8
135# CHECK-S-OBJ: unzip8 t0, t1
136unzip8 x5, x6
137
138# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 12
139# CHECK-S-OBJ: zip4 t0, t1
140zip4 x5, x6
141
142# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 12
143# CHECK-S-OBJ: unzip4 t0, t1
144unzip4 x5, x6
145
146# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 14
147# CHECK-S-OBJ: zip2 t0, t1
148zip2 x5, x6
149
150# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 14
151# CHECK-S-OBJ: unzip2 t0, t1
152unzip2 x5, x6
153
154# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 15
155# CHECK-S-OBJ: zip t0, t1
156zip x5, x6
157
158# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 15
159# CHECK-S-OBJ: unzip t0, t1
160unzip x5, x6
161
162# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 1
163# CHECK-S-OBJ: orc.p t0, t1
164orc.p x5, x6
165
166# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 2
167# CHECK-S-OBJ: orc2.n t0, t1
168orc2.n x5, x6
169
170# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 3
171# CHECK-S-OBJ: orc.n t0, t1
172orc.n x5, x6
173
174# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 4
175# CHECK-S-OBJ: orc4.b t0, t1
176orc4.b x5, x6
177
178# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 6
179# CHECK-S-OBJ: orc2.b t0, t1
180orc2.b x5, x6
181
182# CHECK-S-OBJ-NOALIAS: orc.b t0, t1
183# CHECK-S-OBJ: orc.b t0, t1
184orc.b x5, x6
185
186# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 8
187# CHECK-S-OBJ: orc8.h t0, t1
188orc8.h x5, x6
189
190# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 12
191# CHECK-S-OBJ: orc4.h t0, t1
192orc4.h x5, x6
193
194# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 14
195# CHECK-S-OBJ: orc2.h t0, t1
196orc2.h x5, x6
197
198# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 15
199# CHECK-S-OBJ: orc.h t0, t1
200orc.h x5, x6
201
202# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 16
203# CHECK-S-OBJ: orc16 t0, t1
204orc16 x5, x6
205
206# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 24
207# CHECK-S-OBJ: orc8 t0, t1
208orc8 x5, x6
209
210# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 28
211# CHECK-S-OBJ: orc4 t0, t1
212orc4 x5, x6
213
214# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 30
215# CHECK-S-OBJ: orc2 t0, t1
216orc2 x5, x6
217
218# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 31
219# CHECK-S-OBJ: orc t0, t1
220orc x5, x6
221
222# CHECK-S-OBJ-NOALIAS: rori t0, t1, 8
223# CHECK-S-OBJ: rori t0, t1, 8
224ror x5, x6, 8
225
226# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 13
227# CHECK-S-OBJ: grevi t0, t1, 13
228grev x5, x6, 13
229
230# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 13
231# CHECK-S-OBJ: gorci t0, t1, 13
232gorc x5, x6, 13
233
234# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 13
235# CHECK-S-OBJ: shfli t0, t1, 13
236shfl x5, x6, 13
237
238# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 13
239# CHECK-S-OBJ: unshfli t0, t1, 13
240unshfl x5, x6, 13
241