xref: /llvm-project/llvm/test/MC/AArch64/SVE/sqdecb.s (revision 75cdab6dc2453a508157a9c383b93373a93078d6)
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme < %s \
4// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
5// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
6// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
8// RUN:        | llvm-objdump --no-print-imm-hex -d --mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
10// RUN:   | llvm-objdump --no-print-imm-hex -d --mattr=-sve - | FileCheck %s --check-prefix=CHECK-UNKNOWN
11
12// ---------------------------------------------------------------------------//
13// Test 64-bit form (x0) and its aliases
14// ---------------------------------------------------------------------------//
15
16sqdecb  x0
17// CHECK-INST: sqdecb  x0
18// CHECK-ENCODING: [0xe0,0xfb,0x30,0x04]
19// CHECK-ERROR: instruction requires: sve or sme
20// CHECK-UNKNOWN: 0430fbe0 <unknown>
21
22sqdecb  x0, all
23// CHECK-INST: sqdecb  x0
24// CHECK-ENCODING: [0xe0,0xfb,0x30,0x04]
25// CHECK-ERROR: instruction requires: sve or sme
26// CHECK-UNKNOWN: 0430fbe0 <unknown>
27
28sqdecb  x0, all, mul #1
29// CHECK-INST: sqdecb  x0
30// CHECK-ENCODING: [0xe0,0xfb,0x30,0x04]
31// CHECK-ERROR: instruction requires: sve or sme
32// CHECK-UNKNOWN: 0430fbe0 <unknown>
33
34sqdecb  x0, all, mul #16
35// CHECK-INST: sqdecb  x0, all, mul #16
36// CHECK-ENCODING: [0xe0,0xfb,0x3f,0x04]
37// CHECK-ERROR: instruction requires: sve or sme
38// CHECK-UNKNOWN: 043ffbe0 <unknown>
39
40
41// ---------------------------------------------------------------------------//
42// Test 32-bit form (x0, w0) and its aliases
43// ---------------------------------------------------------------------------//
44
45sqdecb  x0, w0
46// CHECK-INST: sqdecb  x0, w0
47// CHECK-ENCODING: [0xe0,0xfb,0x20,0x04]
48// CHECK-ERROR: instruction requires: sve or sme
49// CHECK-UNKNOWN: 0420fbe0 <unknown>
50
51sqdecb  x0, w0, all
52// CHECK-INST: sqdecb  x0, w0
53// CHECK-ENCODING: [0xe0,0xfb,0x20,0x04]
54// CHECK-ERROR: instruction requires: sve or sme
55// CHECK-UNKNOWN: 0420fbe0 <unknown>
56
57sqdecb  x0, w0, all, mul #1
58// CHECK-INST: sqdecb  x0, w0
59// CHECK-ENCODING: [0xe0,0xfb,0x20,0x04]
60// CHECK-ERROR: instruction requires: sve or sme
61// CHECK-UNKNOWN: 0420fbe0 <unknown>
62
63sqdecb  x0, w0, all, mul #16
64// CHECK-INST: sqdecb  x0, w0, all, mul #16
65// CHECK-ENCODING: [0xe0,0xfb,0x2f,0x04]
66// CHECK-ERROR: instruction requires: sve or sme
67// CHECK-UNKNOWN: 042ffbe0 <unknown>
68
69sqdecb  x0, w0, pow2
70// CHECK-INST: sqdecb  x0, w0, pow2
71// CHECK-ENCODING: [0x00,0xf8,0x20,0x04]
72// CHECK-ERROR: instruction requires: sve or sme
73// CHECK-UNKNOWN: 0420f800 <unknown>
74
75sqdecb  x0, w0, pow2, mul #16
76// CHECK-INST: sqdecb  x0, w0, pow2, mul #16
77// CHECK-ENCODING: [0x00,0xf8,0x2f,0x04]
78// CHECK-ERROR: instruction requires: sve or sme
79// CHECK-UNKNOWN: 042ff800 <unknown>
80
81
82// ---------------------------------------------------------------------------//
83// Test all patterns for 64-bit form
84// ---------------------------------------------------------------------------//
85
86sqdecb  x0, pow2
87// CHECK-INST: sqdecb  x0, pow2
88// CHECK-ENCODING: [0x00,0xf8,0x30,0x04]
89// CHECK-ERROR: instruction requires: sve or sme
90// CHECK-UNKNOWN: 0430f800 <unknown>
91
92sqdecb  x0, vl1
93// CHECK-INST: sqdecb  x0, vl1
94// CHECK-ENCODING: [0x20,0xf8,0x30,0x04]
95// CHECK-ERROR: instruction requires: sve or sme
96// CHECK-UNKNOWN: 0430f820 <unknown>
97
98sqdecb  x0, vl2
99// CHECK-INST: sqdecb  x0, vl2
100// CHECK-ENCODING: [0x40,0xf8,0x30,0x04]
101// CHECK-ERROR: instruction requires: sve or sme
102// CHECK-UNKNOWN: 0430f840 <unknown>
103
104sqdecb  x0, vl3
105// CHECK-INST: sqdecb  x0, vl3
106// CHECK-ENCODING: [0x60,0xf8,0x30,0x04]
107// CHECK-ERROR: instruction requires: sve or sme
108// CHECK-UNKNOWN: 0430f860 <unknown>
109
110sqdecb  x0, vl4
111// CHECK-INST: sqdecb  x0, vl4
112// CHECK-ENCODING: [0x80,0xf8,0x30,0x04]
113// CHECK-ERROR: instruction requires: sve or sme
114// CHECK-UNKNOWN: 0430f880 <unknown>
115
116sqdecb  x0, vl5
117// CHECK-INST: sqdecb  x0, vl5
118// CHECK-ENCODING: [0xa0,0xf8,0x30,0x04]
119// CHECK-ERROR: instruction requires: sve or sme
120// CHECK-UNKNOWN: 0430f8a0 <unknown>
121
122sqdecb  x0, vl6
123// CHECK-INST: sqdecb  x0, vl6
124// CHECK-ENCODING: [0xc0,0xf8,0x30,0x04]
125// CHECK-ERROR: instruction requires: sve or sme
126// CHECK-UNKNOWN: 0430f8c0 <unknown>
127
128sqdecb  x0, vl7
129// CHECK-INST: sqdecb  x0, vl7
130// CHECK-ENCODING: [0xe0,0xf8,0x30,0x04]
131// CHECK-ERROR: instruction requires: sve or sme
132// CHECK-UNKNOWN: 0430f8e0 <unknown>
133
134sqdecb  x0, vl8
135// CHECK-INST: sqdecb  x0, vl8
136// CHECK-ENCODING: [0x00,0xf9,0x30,0x04]
137// CHECK-ERROR: instruction requires: sve or sme
138// CHECK-UNKNOWN: 0430f900 <unknown>
139
140sqdecb  x0, vl16
141// CHECK-INST: sqdecb  x0, vl16
142// CHECK-ENCODING: [0x20,0xf9,0x30,0x04]
143// CHECK-ERROR: instruction requires: sve or sme
144// CHECK-UNKNOWN: 0430f920 <unknown>
145
146sqdecb  x0, vl32
147// CHECK-INST: sqdecb  x0, vl32
148// CHECK-ENCODING: [0x40,0xf9,0x30,0x04]
149// CHECK-ERROR: instruction requires: sve or sme
150// CHECK-UNKNOWN: 0430f940 <unknown>
151
152sqdecb  x0, vl64
153// CHECK-INST: sqdecb  x0, vl64
154// CHECK-ENCODING: [0x60,0xf9,0x30,0x04]
155// CHECK-ERROR: instruction requires: sve or sme
156// CHECK-UNKNOWN: 0430f960 <unknown>
157
158sqdecb  x0, vl128
159// CHECK-INST: sqdecb  x0, vl128
160// CHECK-ENCODING: [0x80,0xf9,0x30,0x04]
161// CHECK-ERROR: instruction requires: sve or sme
162// CHECK-UNKNOWN: 0430f980 <unknown>
163
164sqdecb  x0, vl256
165// CHECK-INST: sqdecb  x0, vl256
166// CHECK-ENCODING: [0xa0,0xf9,0x30,0x04]
167// CHECK-ERROR: instruction requires: sve or sme
168// CHECK-UNKNOWN: 0430f9a0 <unknown>
169
170sqdecb  x0, #14
171// CHECK-INST: sqdecb  x0, #14
172// CHECK-ENCODING: [0xc0,0xf9,0x30,0x04]
173// CHECK-ERROR: instruction requires: sve or sme
174// CHECK-UNKNOWN: 0430f9c0 <unknown>
175
176sqdecb  x0, #15
177// CHECK-INST: sqdecb  x0, #15
178// CHECK-ENCODING: [0xe0,0xf9,0x30,0x04]
179// CHECK-ERROR: instruction requires: sve or sme
180// CHECK-UNKNOWN: 0430f9e0 <unknown>
181
182sqdecb  x0, #16
183// CHECK-INST: sqdecb  x0, #16
184// CHECK-ENCODING: [0x00,0xfa,0x30,0x04]
185// CHECK-ERROR: instruction requires: sve or sme
186// CHECK-UNKNOWN: 0430fa00 <unknown>
187
188sqdecb  x0, #17
189// CHECK-INST: sqdecb  x0, #17
190// CHECK-ENCODING: [0x20,0xfa,0x30,0x04]
191// CHECK-ERROR: instruction requires: sve or sme
192// CHECK-UNKNOWN: 0430fa20 <unknown>
193
194sqdecb  x0, #18
195// CHECK-INST: sqdecb  x0, #18
196// CHECK-ENCODING: [0x40,0xfa,0x30,0x04]
197// CHECK-ERROR: instruction requires: sve or sme
198// CHECK-UNKNOWN: 0430fa40 <unknown>
199
200sqdecb  x0, #19
201// CHECK-INST: sqdecb  x0, #19
202// CHECK-ENCODING: [0x60,0xfa,0x30,0x04]
203// CHECK-ERROR: instruction requires: sve or sme
204// CHECK-UNKNOWN: 0430fa60 <unknown>
205
206sqdecb  x0, #20
207// CHECK-INST: sqdecb  x0, #20
208// CHECK-ENCODING: [0x80,0xfa,0x30,0x04]
209// CHECK-ERROR: instruction requires: sve or sme
210// CHECK-UNKNOWN: 0430fa80 <unknown>
211
212sqdecb  x0, #21
213// CHECK-INST: sqdecb  x0, #21
214// CHECK-ENCODING: [0xa0,0xfa,0x30,0x04]
215// CHECK-ERROR: instruction requires: sve or sme
216// CHECK-UNKNOWN: 0430faa0 <unknown>
217
218sqdecb  x0, #22
219// CHECK-INST: sqdecb  x0, #22
220// CHECK-ENCODING: [0xc0,0xfa,0x30,0x04]
221// CHECK-ERROR: instruction requires: sve or sme
222// CHECK-UNKNOWN: 0430fac0 <unknown>
223
224sqdecb  x0, #23
225// CHECK-INST: sqdecb  x0, #23
226// CHECK-ENCODING: [0xe0,0xfa,0x30,0x04]
227// CHECK-ERROR: instruction requires: sve or sme
228// CHECK-UNKNOWN: 0430fae0 <unknown>
229
230sqdecb  x0, #24
231// CHECK-INST: sqdecb  x0, #24
232// CHECK-ENCODING: [0x00,0xfb,0x30,0x04]
233// CHECK-ERROR: instruction requires: sve or sme
234// CHECK-UNKNOWN: 0430fb00 <unknown>
235
236sqdecb  x0, #25
237// CHECK-INST: sqdecb  x0, #25
238// CHECK-ENCODING: [0x20,0xfb,0x30,0x04]
239// CHECK-ERROR: instruction requires: sve or sme
240// CHECK-UNKNOWN: 0430fb20 <unknown>
241
242sqdecb  x0, #26
243// CHECK-INST: sqdecb  x0, #26
244// CHECK-ENCODING: [0x40,0xfb,0x30,0x04]
245// CHECK-ERROR: instruction requires: sve or sme
246// CHECK-UNKNOWN: 0430fb40 <unknown>
247
248sqdecb  x0, #27
249// CHECK-INST: sqdecb  x0, #27
250// CHECK-ENCODING: [0x60,0xfb,0x30,0x04]
251// CHECK-ERROR: instruction requires: sve or sme
252// CHECK-UNKNOWN: 0430fb60 <unknown>
253
254sqdecb  x0, #28
255// CHECK-INST: sqdecb  x0, #28
256// CHECK-ENCODING: [0x80,0xfb,0x30,0x04]
257// CHECK-ERROR: instruction requires: sve or sme
258// CHECK-UNKNOWN: 0430fb80 <unknown>
259