• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
4// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
6// RUN:        | llvm-objdump -d --mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
8// RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9
10
11// ---------------------------------------------------------------------------//
12// Test 64-bit form (x0) and its aliases
13// ---------------------------------------------------------------------------//
14uqincd  x0
15// CHECK-INST: uqincd  x0
16// CHECK-ENCODING: [0xe0,0xf7,0xf0,0x04]
17// CHECK-ERROR: instruction requires: sve
18// CHECK-UNKNOWN: e0 f7 f0 04 <unknown>
19
20uqincd  x0, all
21// CHECK-INST: uqincd  x0
22// CHECK-ENCODING: [0xe0,0xf7,0xf0,0x04]
23// CHECK-ERROR: instruction requires: sve
24// CHECK-UNKNOWN: e0 f7 f0 04 <unknown>
25
26uqincd  x0, all, mul #1
27// CHECK-INST: uqincd  x0
28// CHECK-ENCODING: [0xe0,0xf7,0xf0,0x04]
29// CHECK-ERROR: instruction requires: sve
30// CHECK-UNKNOWN: e0 f7 f0 04 <unknown>
31
32uqincd  x0, all, mul #16
33// CHECK-INST: uqincd  x0, all, mul #16
34// CHECK-ENCODING: [0xe0,0xf7,0xff,0x04]
35// CHECK-ERROR: instruction requires: sve
36// CHECK-UNKNOWN: e0 f7 ff 04 <unknown>
37
38
39// ---------------------------------------------------------------------------//
40// Test 32-bit form (w0) and its aliases
41// ---------------------------------------------------------------------------//
42
43uqincd  w0
44// CHECK-INST: uqincd  w0
45// CHECK-ENCODING: [0xe0,0xf7,0xe0,0x04]
46// CHECK-ERROR: instruction requires: sve
47// CHECK-UNKNOWN: e0 f7 e0 04 <unknown>
48
49uqincd  w0, all
50// CHECK-INST: uqincd  w0
51// CHECK-ENCODING: [0xe0,0xf7,0xe0,0x04]
52// CHECK-ERROR: instruction requires: sve
53// CHECK-UNKNOWN: e0 f7 e0 04 <unknown>
54
55uqincd  w0, all, mul #1
56// CHECK-INST: uqincd  w0
57// CHECK-ENCODING: [0xe0,0xf7,0xe0,0x04]
58// CHECK-ERROR: instruction requires: sve
59// CHECK-UNKNOWN: e0 f7 e0 04 <unknown>
60
61uqincd  w0, all, mul #16
62// CHECK-INST: uqincd  w0, all, mul #16
63// CHECK-ENCODING: [0xe0,0xf7,0xef,0x04]
64// CHECK-ERROR: instruction requires: sve
65// CHECK-UNKNOWN: e0 f7 ef 04 <unknown>
66
67uqincd  w0, pow2
68// CHECK-INST: uqincd  w0, pow2
69// CHECK-ENCODING: [0x00,0xf4,0xe0,0x04]
70// CHECK-ERROR: instruction requires: sve
71// CHECK-UNKNOWN: 00 f4 e0 04 <unknown>
72
73uqincd  w0, pow2, mul #16
74// CHECK-INST: uqincd  w0, pow2, mul #16
75// CHECK-ENCODING: [0x00,0xf4,0xef,0x04]
76// CHECK-ERROR: instruction requires: sve
77// CHECK-UNKNOWN: 00 f4 ef 04 <unknown>
78
79
80// ---------------------------------------------------------------------------//
81// Test vector form and aliases.
82// ---------------------------------------------------------------------------//
83uqincd  z0.d
84// CHECK-INST: uqincd  z0.d
85// CHECK-ENCODING: [0xe0,0xc7,0xe0,0x04]
86// CHECK-ERROR: instruction requires: sve
87// CHECK-UNKNOWN: e0 c7 e0 04 <unknown>
88
89uqincd  z0.d, all
90// CHECK-INST: uqincd  z0.d
91// CHECK-ENCODING: [0xe0,0xc7,0xe0,0x04]
92// CHECK-ERROR: instruction requires: sve
93// CHECK-UNKNOWN: e0 c7 e0 04 <unknown>
94
95uqincd  z0.d, all, mul #1
96// CHECK-INST: uqincd  z0.d
97// CHECK-ENCODING: [0xe0,0xc7,0xe0,0x04]
98// CHECK-ERROR: instruction requires: sve
99// CHECK-UNKNOWN: e0 c7 e0 04 <unknown>
100
101uqincd  z0.d, all, mul #16
102// CHECK-INST: uqincd  z0.d, all, mul #16
103// CHECK-ENCODING: [0xe0,0xc7,0xef,0x04]
104// CHECK-ERROR: instruction requires: sve
105// CHECK-UNKNOWN: e0 c7 ef 04 <unknown>
106
107uqincd  z0.d, pow2
108// CHECK-INST: uqincd  z0.d, pow2
109// CHECK-ENCODING: [0x00,0xc4,0xe0,0x04]
110// CHECK-ERROR: instruction requires: sve
111// CHECK-UNKNOWN: 00 c4 e0 04 <unknown>
112
113uqincd  z0.d, pow2, mul #16
114// CHECK-INST: uqincd  z0.d, pow2, mul #16
115// CHECK-ENCODING: [0x00,0xc4,0xef,0x04]
116// CHECK-ERROR: instruction requires: sve
117// CHECK-UNKNOWN: 00 c4 ef 04 <unknown>
118
119
120// ---------------------------------------------------------------------------//
121// Test all patterns for 64-bit form
122// ---------------------------------------------------------------------------//
123
124uqincd  x0, pow2
125// CHECK-INST: uqincd  x0, pow2
126// CHECK-ENCODING: [0x00,0xf4,0xf0,0x04]
127// CHECK-ERROR: instruction requires: sve
128// CHECK-UNKNOWN: 00 f4 f0 04 <unknown>
129
130uqincd  x0, vl1
131// CHECK-INST: uqincd  x0, vl1
132// CHECK-ENCODING: [0x20,0xf4,0xf0,0x04]
133// CHECK-ERROR: instruction requires: sve
134// CHECK-UNKNOWN: 20 f4 f0 04 <unknown>
135
136uqincd  x0, vl2
137// CHECK-INST: uqincd  x0, vl2
138// CHECK-ENCODING: [0x40,0xf4,0xf0,0x04]
139// CHECK-ERROR: instruction requires: sve
140// CHECK-UNKNOWN: 40 f4 f0 04 <unknown>
141
142uqincd  x0, vl3
143// CHECK-INST: uqincd  x0, vl3
144// CHECK-ENCODING: [0x60,0xf4,0xf0,0x04]
145// CHECK-ERROR: instruction requires: sve
146// CHECK-UNKNOWN: 60 f4 f0 04 <unknown>
147
148uqincd  x0, vl4
149// CHECK-INST: uqincd  x0, vl4
150// CHECK-ENCODING: [0x80,0xf4,0xf0,0x04]
151// CHECK-ERROR: instruction requires: sve
152// CHECK-UNKNOWN: 80 f4 f0 04 <unknown>
153
154uqincd  x0, vl5
155// CHECK-INST: uqincd  x0, vl5
156// CHECK-ENCODING: [0xa0,0xf4,0xf0,0x04]
157// CHECK-ERROR: instruction requires: sve
158// CHECK-UNKNOWN: a0 f4 f0 04 <unknown>
159
160uqincd  x0, vl6
161// CHECK-INST: uqincd  x0, vl6
162// CHECK-ENCODING: [0xc0,0xf4,0xf0,0x04]
163// CHECK-ERROR: instruction requires: sve
164// CHECK-UNKNOWN: c0 f4 f0 04 <unknown>
165
166uqincd  x0, vl7
167// CHECK-INST: uqincd  x0, vl7
168// CHECK-ENCODING: [0xe0,0xf4,0xf0,0x04]
169// CHECK-ERROR: instruction requires: sve
170// CHECK-UNKNOWN: e0 f4 f0 04 <unknown>
171
172uqincd  x0, vl8
173// CHECK-INST: uqincd  x0, vl8
174// CHECK-ENCODING: [0x00,0xf5,0xf0,0x04]
175// CHECK-ERROR: instruction requires: sve
176// CHECK-UNKNOWN: 00 f5 f0 04 <unknown>
177
178uqincd  x0, vl16
179// CHECK-INST: uqincd  x0, vl16
180// CHECK-ENCODING: [0x20,0xf5,0xf0,0x04]
181// CHECK-ERROR: instruction requires: sve
182// CHECK-UNKNOWN: 20 f5 f0 04 <unknown>
183
184uqincd  x0, vl32
185// CHECK-INST: uqincd  x0, vl32
186// CHECK-ENCODING: [0x40,0xf5,0xf0,0x04]
187// CHECK-ERROR: instruction requires: sve
188// CHECK-UNKNOWN: 40 f5 f0 04 <unknown>
189
190uqincd  x0, vl64
191// CHECK-INST: uqincd  x0, vl64
192// CHECK-ENCODING: [0x60,0xf5,0xf0,0x04]
193// CHECK-ERROR: instruction requires: sve
194// CHECK-UNKNOWN: 60 f5 f0 04 <unknown>
195
196uqincd  x0, vl128
197// CHECK-INST: uqincd  x0, vl128
198// CHECK-ENCODING: [0x80,0xf5,0xf0,0x04]
199// CHECK-ERROR: instruction requires: sve
200// CHECK-UNKNOWN: 80 f5 f0 04 <unknown>
201
202uqincd  x0, vl256
203// CHECK-INST: uqincd  x0, vl256
204// CHECK-ENCODING: [0xa0,0xf5,0xf0,0x04]
205// CHECK-ERROR: instruction requires: sve
206// CHECK-UNKNOWN: a0 f5 f0 04 <unknown>
207
208uqincd  x0, #14
209// CHECK-INST: uqincd  x0, #14
210// CHECK-ENCODING: [0xc0,0xf5,0xf0,0x04]
211// CHECK-ERROR: instruction requires: sve
212// CHECK-UNKNOWN: c0 f5 f0 04 <unknown>
213
214uqincd  x0, #15
215// CHECK-INST: uqincd  x0, #15
216// CHECK-ENCODING: [0xe0,0xf5,0xf0,0x04]
217// CHECK-ERROR: instruction requires: sve
218// CHECK-UNKNOWN: e0 f5 f0 04 <unknown>
219
220uqincd  x0, #16
221// CHECK-INST: uqincd  x0, #16
222// CHECK-ENCODING: [0x00,0xf6,0xf0,0x04]
223// CHECK-ERROR: instruction requires: sve
224// CHECK-UNKNOWN: 00 f6 f0 04 <unknown>
225
226uqincd  x0, #17
227// CHECK-INST: uqincd  x0, #17
228// CHECK-ENCODING: [0x20,0xf6,0xf0,0x04]
229// CHECK-ERROR: instruction requires: sve
230// CHECK-UNKNOWN: 20 f6 f0 04 <unknown>
231
232uqincd  x0, #18
233// CHECK-INST: uqincd  x0, #18
234// CHECK-ENCODING: [0x40,0xf6,0xf0,0x04]
235// CHECK-ERROR: instruction requires: sve
236// CHECK-UNKNOWN: 40 f6 f0 04 <unknown>
237
238uqincd  x0, #19
239// CHECK-INST: uqincd  x0, #19
240// CHECK-ENCODING: [0x60,0xf6,0xf0,0x04]
241// CHECK-ERROR: instruction requires: sve
242// CHECK-UNKNOWN: 60 f6 f0 04 <unknown>
243
244uqincd  x0, #20
245// CHECK-INST: uqincd  x0, #20
246// CHECK-ENCODING: [0x80,0xf6,0xf0,0x04]
247// CHECK-ERROR: instruction requires: sve
248// CHECK-UNKNOWN: 80 f6 f0 04 <unknown>
249
250uqincd  x0, #21
251// CHECK-INST: uqincd  x0, #21
252// CHECK-ENCODING: [0xa0,0xf6,0xf0,0x04]
253// CHECK-ERROR: instruction requires: sve
254// CHECK-UNKNOWN: a0 f6 f0 04 <unknown>
255
256uqincd  x0, #22
257// CHECK-INST: uqincd  x0, #22
258// CHECK-ENCODING: [0xc0,0xf6,0xf0,0x04]
259// CHECK-ERROR: instruction requires: sve
260// CHECK-UNKNOWN: c0 f6 f0 04 <unknown>
261
262uqincd  x0, #23
263// CHECK-INST: uqincd  x0, #23
264// CHECK-ENCODING: [0xe0,0xf6,0xf0,0x04]
265// CHECK-ERROR: instruction requires: sve
266// CHECK-UNKNOWN: e0 f6 f0 04 <unknown>
267
268uqincd  x0, #24
269// CHECK-INST: uqincd  x0, #24
270// CHECK-ENCODING: [0x00,0xf7,0xf0,0x04]
271// CHECK-ERROR: instruction requires: sve
272// CHECK-UNKNOWN: 00 f7 f0 04 <unknown>
273
274uqincd  x0, #25
275// CHECK-INST: uqincd  x0, #25
276// CHECK-ENCODING: [0x20,0xf7,0xf0,0x04]
277// CHECK-ERROR: instruction requires: sve
278// CHECK-UNKNOWN: 20 f7 f0 04 <unknown>
279
280uqincd  x0, #26
281// CHECK-INST: uqincd  x0, #26
282// CHECK-ENCODING: [0x40,0xf7,0xf0,0x04]
283// CHECK-ERROR: instruction requires: sve
284// CHECK-UNKNOWN: 40 f7 f0 04 <unknown>
285
286uqincd  x0, #27
287// CHECK-INST: uqincd  x0, #27
288// CHECK-ENCODING: [0x60,0xf7,0xf0,0x04]
289// CHECK-ERROR: instruction requires: sve
290// CHECK-UNKNOWN: 60 f7 f0 04 <unknown>
291
292uqincd  x0, #28
293// CHECK-INST: uqincd  x0, #28
294// CHECK-ENCODING: [0x80,0xf7,0xf0,0x04]
295// CHECK-ERROR: instruction requires: sve
296// CHECK-UNKNOWN: 80 f7 f0 04 <unknown>
297
298
299// --------------------------------------------------------------------------//
300// Test compatibility with MOVPRFX instruction.
301
302movprfx z0, z7
303// CHECK-INST: movprfx	z0, z7
304// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]
305// CHECK-ERROR: instruction requires: sve
306// CHECK-UNKNOWN: e0 bc 20 04 <unknown>
307
308uqincd  z0.d
309// CHECK-INST: uqincd	z0.d
310// CHECK-ENCODING: [0xe0,0xc7,0xe0,0x04]
311// CHECK-ERROR: instruction requires: sve
312// CHECK-UNKNOWN: e0 c7 e0 04 <unknown>
313
314movprfx z0, z7
315// CHECK-INST: movprfx	z0, z7
316// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]
317// CHECK-ERROR: instruction requires: sve
318// CHECK-UNKNOWN: e0 bc 20 04 <unknown>
319
320uqincd  z0.d, pow2, mul #16
321// CHECK-INST: uqincd	z0.d, pow2, mul #16
322// CHECK-ENCODING: [0x00,0xc4,0xef,0x04]
323// CHECK-ERROR: instruction requires: sve
324// CHECK-UNKNOWN: 00 c4 ef 04 <unknown>
325
326movprfx z0, z7
327// CHECK-INST: movprfx	z0, z7
328// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]
329// CHECK-ERROR: instruction requires: sve
330// CHECK-UNKNOWN: e0 bc 20 04 <unknown>
331
332uqincd  z0.d, pow2
333// CHECK-INST: uqincd	z0.d, pow2
334// CHECK-ENCODING: [0x00,0xc4,0xe0,0x04]
335// CHECK-ERROR: instruction requires: sve
336// CHECK-UNKNOWN: 00 c4 e0 04 <unknown>
337