xref: /llvm-project/llvm/test/MC/AArch64/SVE2p1/pmov.s (revision 5fc712c4bbe84e6cbaa1f7d2a0300f613f11b0c3)
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 < %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=+sme2p1 < %s \
8// RUN:        | llvm-objdump -d --no-print-imm-hex --mattr=+sme2p1 - | FileCheck %s --check-prefix=CHECK-INST
9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1 < %s \
10// RUN:        | llvm-objdump -d --mattr=-sme2p1,-sve2p1 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
11// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 < %s \
12// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
13// RUN:        | llvm-mc -triple=aarch64 -mattr=+sme2p1 -disassemble -show-encoding \
14// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
15
16
17pmov    p0.h, z0[0]  // 00000101-00101100-00111000-00000000
18// CHECK-INST: pmov    p0.h, z0[0]
19// CHECK-ENCODING: [0x00,0x38,0x2c,0x05]
20// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
21// CHECK-UNKNOWN: 052c3800 <unknown>
22
23pmov    p0.h, z0  // 00000101-00101100-00111000-00000000
24// CHECK-INST: pmov    p0.h, z0[0]
25// CHECK-ENCODING: [0x00,0x38,0x2c,0x05]
26// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
27// CHECK-UNKNOWN: 052c3800 <unknown>
28
29pmov    p5.h, z10[0]  // 00000101-00101100-00111001-01000101
30// CHECK-INST: pmov    p5.h, z10[0]
31// CHECK-ENCODING: [0x45,0x39,0x2c,0x05]
32// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
33// CHECK-UNKNOWN: 052c3945 <unknown>
34
35pmov    p7.h, z13[0]  // 00000101-00101100-00111001-10100111
36// CHECK-INST: pmov    p7.h, z13[0]
37// CHECK-ENCODING: [0xa7,0x39,0x2c,0x05]
38// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
39// CHECK-UNKNOWN: 052c39a7 <unknown>
40
41pmov    p15.h, z31[1]  // 00000101-00101110-00111011-11101111
42// CHECK-INST: pmov    p15.h, z31[1]
43// CHECK-ENCODING: [0xef,0x3b,0x2e,0x05]
44// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
45// CHECK-UNKNOWN: 052e3bef <unknown>
46
47pmov    p0.s, z0[0]  // 00000101-01101000-00111000-00000000
48// CHECK-INST: pmov    p0.s, z0[0]
49// CHECK-ENCODING: [0x00,0x38,0x68,0x05]
50// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
51// CHECK-UNKNOWN: 05683800 <unknown>
52
53pmov    p0.s, z0  // 00000101-01101000-00111000-00000000
54// CHECK-INST: pmov    p0.s, z0[0]
55// CHECK-ENCODING: [0x00,0x38,0x68,0x05]
56// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
57// CHECK-UNKNOWN: 05683800 <unknown>
58
59pmov    p5.s, z10[2]  // 00000101-01101100-00111001-01000101
60// CHECK-INST: pmov    p5.s, z10[2]
61// CHECK-ENCODING: [0x45,0x39,0x6c,0x05]
62// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
63// CHECK-UNKNOWN: 056c3945 <unknown>
64
65pmov    p7.s, z13[0]  // 00000101-01101000-00111001-10100111
66// CHECK-INST: pmov    p7.s, z13[0]
67// CHECK-ENCODING: [0xa7,0x39,0x68,0x05]
68// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
69// CHECK-UNKNOWN: 056839a7 <unknown>
70
71pmov    p15.s, z31[3]  // 00000101-01101110-00111011-11101111
72// CHECK-INST: pmov    p15.s, z31[3]
73// CHECK-ENCODING: [0xef,0x3b,0x6e,0x05]
74// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
75// CHECK-UNKNOWN: 056e3bef <unknown>
76
77pmov    p0.d, z0[0]  // 00000101-10101000-00111000-00000000
78// CHECK-INST: pmov    p0.d, z0[0]
79// CHECK-ENCODING: [0x00,0x38,0xa8,0x05]
80// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
81// CHECK-UNKNOWN: 05a83800 <unknown>
82
83pmov    p0.d, z0  // 00000101-10101000-00111000-00000000
84// CHECK-INST: pmov    p0.d, z0[0]
85// CHECK-ENCODING: [0x00,0x38,0xa8,0x05]
86// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
87// CHECK-UNKNOWN: 05a83800 <unknown>
88
89pmov    p5.d, z10[6]  // 00000101-11101100-00111001-01000101
90// CHECK-INST: pmov    p5.d, z10[6]
91// CHECK-ENCODING: [0x45,0x39,0xec,0x05]
92// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
93// CHECK-UNKNOWN: 05ec3945 <unknown>
94
95pmov    p7.d, z13[4]  // 00000101-11101000-00111001-10100111
96// CHECK-INST: pmov    p7.d, z13[4]
97// CHECK-ENCODING: [0xa7,0x39,0xe8,0x05]
98// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
99// CHECK-UNKNOWN: 05e839a7 <unknown>
100
101pmov    p15.d, z31[7]  // 00000101-11101110-00111011-11101111
102// CHECK-INST: pmov    p15.d, z31[7]
103// CHECK-ENCODING: [0xef,0x3b,0xee,0x05]
104// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
105// CHECK-UNKNOWN: 05ee3bef <unknown>
106
107pmov    p0.b, z0  // 00000101-00101010-00111000-00000000
108// CHECK-INST: pmov    p0.b, z0
109// CHECK-ENCODING: [0x00,0x38,0x2a,0x05]
110// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
111// CHECK-UNKNOWN: 052a3800 <unknown>
112
113pmov    p5.b, z10  // 00000101-00101010-00111001-01000101
114// CHECK-INST: pmov    p5.b, z10
115// CHECK-ENCODING: [0x45,0x39,0x2a,0x05]
116// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
117// CHECK-UNKNOWN: 052a3945 <unknown>
118
119pmov    p7.b, z13  // 00000101-00101010-00111001-10100111
120// CHECK-INST: pmov    p7.b, z13
121// CHECK-ENCODING: [0xa7,0x39,0x2a,0x05]
122// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
123// CHECK-UNKNOWN: 052a39a7 <unknown>
124
125pmov    p15.b, z31  // 00000101-00101010-00111011-11101111
126// CHECK-INST: pmov    p15.b, z31
127// CHECK-ENCODING: [0xef,0x3b,0x2a,0x05]
128// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
129// CHECK-UNKNOWN: 052a3bef <unknown>
130
131pmov    p0.b, z0[0] // 00000101-00101010-00111000-00000000
132// CHECK-INST: pmov    p0.b, z0
133// CHECK-ENCODING: [0x00,0x38,0x2a,0x05]
134// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
135// CHECK-UNKNOWN: 052a3800 <unknown>
136
137pmov    z0[0], p0.h  // 00000101-00101101-00111000-00000000
138// CHECK-INST: pmov    z0[0], p0.h
139// CHECK-ENCODING: [0x00,0x38,0x2d,0x05]
140// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
141// CHECK-UNKNOWN: 052d3800 <unknown>
142
143pmov    z0, p0.h  // 00000101-00101101-00111000-00000000
144// CHECK-INST: pmov    z0[0], p0.h
145// CHECK-ENCODING: [0x00,0x38,0x2d,0x05]
146// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
147// CHECK-UNKNOWN: 052d3800 <unknown>
148
149pmov    z21[0], p10.h  // 00000101-00101101-00111001-01010101
150// CHECK-INST: pmov    z21[0], p10.h
151// CHECK-ENCODING: [0x55,0x39,0x2d,0x05]
152// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
153// CHECK-UNKNOWN: 052d3955 <unknown>
154
155pmov    z23[0], p13.h  // 00000101-00101101-00111001-10110111
156// CHECK-INST: pmov    z23[0], p13.h
157// CHECK-ENCODING: [0xb7,0x39,0x2d,0x05]
158// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
159// CHECK-UNKNOWN: 052d39b7 <unknown>
160
161pmov    z31[1], p15.h  // 00000101-00101111-00111001-11111111
162// CHECK-INST: pmov    z31[1], p15.h
163// CHECK-ENCODING: [0xff,0x39,0x2f,0x05]
164// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
165// CHECK-UNKNOWN: 052f39ff <unknown>
166
167
168pmov    z0[0], p0.s  // 00000101-01101001-00111000-00000000
169// CHECK-INST: pmov    z0[0], p0.s
170// CHECK-ENCODING: [0x00,0x38,0x69,0x05]
171// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
172// CHECK-UNKNOWN: 05693800 <unknown>
173
174pmov    z0, p0.s  // 00000101-01101001-00111000-00000000
175// CHECK-INST: pmov    z0[0], p0.s
176// CHECK-ENCODING: [0x00,0x38,0x69,0x05]
177// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
178// CHECK-UNKNOWN: 05693800 <unknown>
179
180pmov    z21[2], p10.s  // 00000101-01101101-00111001-01010101
181// CHECK-INST: pmov    z21[2], p10.s
182// CHECK-ENCODING: [0x55,0x39,0x6d,0x05]
183// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
184// CHECK-UNKNOWN: 056d3955 <unknown>
185
186pmov    z23[0], p13.s  // 00000101-01101001-00111001-10110111
187// CHECK-INST: pmov    z23[0], p13.s
188// CHECK-ENCODING: [0xb7,0x39,0x69,0x05]
189// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
190// CHECK-UNKNOWN: 056939b7 <unknown>
191
192pmov    z31[3], p15.s  // 00000101-01101111-00111001-11111111
193// CHECK-INST: pmov    z31[3], p15.s
194// CHECK-ENCODING: [0xff,0x39,0x6f,0x05]
195// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
196// CHECK-UNKNOWN: 056f39ff <unknown>
197
198pmov    z0[0], p0.d  // 00000101-10101001-00111000-00000000
199// CHECK-INST: pmov    z0[0], p0.d
200// CHECK-ENCODING: [0x00,0x38,0xa9,0x05]
201// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
202// CHECK-UNKNOWN: 05a93800 <unknown>
203
204pmov    z0, p0.d  // 00000101-10101001-00111000-00000000
205// CHECK-INST: pmov    z0[0], p0.d
206// CHECK-ENCODING: [0x00,0x38,0xa9,0x05]
207// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
208// CHECK-UNKNOWN: 05a93800 <unknown>
209
210pmov    z21[6], p10.d  // 00000101-11101101-00111001-01010101
211// CHECK-INST: pmov    z21[6], p10.d
212// CHECK-ENCODING: [0x55,0x39,0xed,0x05]
213// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
214// CHECK-UNKNOWN: 05ed3955 <unknown>
215
216pmov    z23[4], p13.d  // 00000101-11101001-00111001-10110111
217// CHECK-INST: pmov    z23[4], p13.d
218// CHECK-ENCODING: [0xb7,0x39,0xe9,0x05]
219// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
220// CHECK-UNKNOWN: 05e939b7 <unknown>
221
222pmov    z31[7], p15.d  // 00000101-11101111-00111001-11111111
223// CHECK-INST: pmov    z31[7], p15.d
224// CHECK-ENCODING: [0xff,0x39,0xef,0x05]
225// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
226// CHECK-UNKNOWN: 05ef39ff <unknown>
227
228pmov    z0, p0.b  // 00000101-00101011-00111000-00000000
229// CHECK-INST: pmov    z0, p0.b
230// CHECK-ENCODING: [0x00,0x38,0x2b,0x05]
231// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
232// CHECK-UNKNOWN: 052b3800 <unknown>
233
234pmov    z21, p10.b  // 00000101-00101011-00111001-01010101
235// CHECK-INST: pmov    z21, p10.b
236// CHECK-ENCODING: [0x55,0x39,0x2b,0x05]
237// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
238// CHECK-UNKNOWN: 052b3955 <unknown>
239
240pmov    z23, p13.b  // 00000101-00101011-00111001-10110111
241// CHECK-INST: pmov    z23, p13.b
242// CHECK-ENCODING: [0xb7,0x39,0x2b,0x05]
243// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
244// CHECK-UNKNOWN: 052b39b7 <unknown>
245
246pmov    z31, p15.b  // 00000101-00101011-00111001-11111111
247// CHECK-INST: pmov    z31, p15.b
248// CHECK-ENCODING: [0xff,0x39,0x2b,0x05]
249// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
250// CHECK-UNKNOWN: 052b39ff <unknown>
251
252pmov    z0[0], p0.b  // 00000101-00101011-00111000-00000000
253// CHECK-INST: pmov    z0, p0.b
254// CHECK-ENCODING: [0x00,0x38,0x2b,0x05]
255// CHECK-ERROR: instruction requires: sme2p1 or sve2p1
256// CHECK-UNKNOWN: 052b3800 <unknown>
257