1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
< %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
=+sme2
< %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=+sme2
- | FileCheck
%s
--check-prefix
=CHECK-INST
9 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme2
< %s \
10 // RUN
: | llvm-objdump
-d
--mattr
=-sme2
,-sve2p1
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
11 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
< %s \
12 // RUN
: | sed
'/.text/d' | sed
's/.*encoding: //g' \
13 // RUN
: | llvm-mc
-triple
=aarch64
-mattr
=+sme2
-disassemble
-show-encoding \
14 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
16 pext p0.h
, pn8
[0] // 00100101-01100000-01110000-00010000
17 // CHECK-INST
: pext p0.h
, pn8
[0]
18 // CHECK-ENCODING
: [0x10,0x70,0x60,0x25]
19 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
20 // CHECK-UNKNOWN
: 25607010 <unknown
>
22 pext p5.h
, pn10
[1] // 00100101-01100000-01110001-01010101
23 // CHECK-INST
: pext p5.h
, pn10
[1]
24 // CHECK-ENCODING
: [0x55,0x71,0x60,0x25]
25 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
26 // CHECK-UNKNOWN
: 25607155 <unknown
>
28 pext p7.h
, pn13
[1] // 00100101-01100000-01110001-10110111
29 // CHECK-INST
: pext p7.h
, pn13
[1]
30 // CHECK-ENCODING
: [0xb7,0x71,0x60,0x25]
31 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
32 // CHECK-UNKNOWN
: 256071b7
<unknown
>
34 pext p15.h
, pn15
[3] // 00100101-01100000-01110011-11111111
35 // CHECK-INST
: pext p15.h
, pn15
[3]
36 // CHECK-ENCODING
: [0xff,0x73,0x60,0x25]
37 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
38 // CHECK-UNKNOWN
: 256073ff
<unknown
>
40 pext p0.s
, pn8
[0] // 00100101-10100000-01110000-00010000
41 // CHECK-INST
: pext p0.s
, pn8
[0]
42 // CHECK-ENCODING
: [0x10,0x70,0xa0,0x25]
43 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
44 // CHECK-UNKNOWN
: 25a07010
<unknown
>
46 pext p5.s
, pn10
[1] // 00100101-10100000-01110001-01010101
47 // CHECK-INST
: pext p5.s
, pn10
[1]
48 // CHECK-ENCODING
: [0x55,0x71,0xa0,0x25]
49 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
50 // CHECK-UNKNOWN
: 25a07155
<unknown
>
52 pext p7.s
, pn13
[1] // 00100101-10100000-01110001-10110111
53 // CHECK-INST
: pext p7.s
, pn13
[1]
54 // CHECK-ENCODING
: [0xb7,0x71,0xa0,0x25]
55 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
56 // CHECK-UNKNOWN
: 25a071b7
<unknown
>
58 pext p15.s
, pn15
[3] // 00100101-10100000-01110011-11111111
59 // CHECK-INST
: pext p15.s
, pn15
[3]
60 // CHECK-ENCODING
: [0xff,0x73,0xa0,0x25]
61 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
62 // CHECK-UNKNOWN
: 25a073ff
<unknown
>
64 pext p0.d
, pn8
[0] // 00100101-11100000-01110000-00010000
65 // CHECK-INST
: pext p0.d
, pn8
[0]
66 // CHECK-ENCODING
: [0x10,0x70,0xe0,0x25]
67 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
68 // CHECK-UNKNOWN
: 25e07010
<unknown
>
70 pext p5.d
, pn10
[1] // 00100101-11100000-01110001-01010101
71 // CHECK-INST
: pext p5.d
, pn10
[1]
72 // CHECK-ENCODING
: [0x55,0x71,0xe0,0x25]
73 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
74 // CHECK-UNKNOWN
: 25e07155
<unknown
>
76 pext p7.d
, pn13
[1] // 00100101-11100000-01110001-10110111
77 // CHECK-INST
: pext p7.d
, pn13
[1]
78 // CHECK-ENCODING
: [0xb7,0x71,0xe0,0x25]
79 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
80 // CHECK-UNKNOWN
: 25e071b7
<unknown
>
82 pext p15.d
, pn15
[3] // 00100101-11100000-01110011-11111111
83 // CHECK-INST
: pext p15.d
, pn15
[3]
84 // CHECK-ENCODING
: [0xff,0x73,0xe0,0x25]
85 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
86 // CHECK-UNKNOWN
: 25e073ff
<unknown
>
88 pext p0.
b, pn8
[0] // 00100101-00100000-01110000-00010000
89 // CHECK-INST
: pext p0.
b, pn8
[0]
90 // CHECK-ENCODING
: [0x10,0x70,0x20,0x25]
91 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
92 // CHECK-UNKNOWN
: 25207010 <unknown
>
94 pext p5.
b, pn10
[1] // 00100101-00100000-01110001-01010101
95 // CHECK-INST
: pext p5.
b, pn10
[1]
96 // CHECK-ENCODING
: [0x55,0x71,0x20,0x25]
97 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
98 // CHECK-UNKNOWN
: 25207155 <unknown
>
100 pext p7.
b, pn13
[1] // 00100101-00100000-01110001-10110111
101 // CHECK-INST
: pext p7.
b, pn13
[1]
102 // CHECK-ENCODING
: [0xb7,0x71,0x20,0x25]
103 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
104 // CHECK-UNKNOWN
: 252071b7
<unknown
>
106 pext p15.
b, pn15
[3] // 00100101-00100000-01110011-11111111
107 // CHECK-INST
: pext p15.
b, pn15
[3]
108 // CHECK-ENCODING
: [0xff,0x73,0x20,0x25]
109 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
110 // CHECK-UNKNOWN
: 252073ff
<unknown
>
112 pext
{p0.h
, p1.h
}, pn8
[0] // 00100101-01100000-01110100-00010000
113 // CHECK-INST
: pext
{ p0.h
, p1.h
}, pn8
[0]
114 // CHECK-ENCODING
: [0x10,0x74,0x60,0x25]
115 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
116 // CHECK-UNKNOWN
: 25607410 <unknown
>
118 pext
{p5.h
, p6.h
}, pn10
[1] // 00100101-01100000-01110101-01010101
119 // CHECK-INST
: pext
{ p5.h
, p6.h
}, pn10
[1]
120 // CHECK-ENCODING
: [0x55,0x75,0x60,0x25]
121 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
122 // CHECK-UNKNOWN
: 25607555 <unknown
>
124 pext
{p7.h
, p8.h
}, pn13
[1] // 00100101-01100000-01110101-10110111
125 // CHECK-INST
: pext
{ p7.h
, p8.h
}, pn13
[1]
126 // CHECK-ENCODING
: [0xb7,0x75,0x60,0x25]
127 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
128 // CHECK-UNKNOWN
: 256075b7
<unknown
>
130 pext
{p15.h
, p0.h
}, pn15
[1] // 00100101-01100000-01110101-11111111
131 // CHECK-INST
: pext
{ p15.h
, p0.h
}, pn15
[1]
132 // CHECK-ENCODING
: [0xff,0x75,0x60,0x25]
133 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
134 // CHECK-UNKNOWN
: 256075ff
<unknown
>
136 pext
{p0.s
, p1.s
}, pn8
[0] // 00100101-10100000-01110100-00010000
137 // CHECK-INST
: pext
{ p0.s
, p1.s
}, pn8
[0]
138 // CHECK-ENCODING
: [0x10,0x74,0xa0,0x25]
139 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
140 // CHECK-UNKNOWN
: 25a07410
<unknown
>
142 pext
{p5.s
, p6.s
}, pn10
[1] // 00100101-10100000-01110101-01010101
143 // CHECK-INST
: pext
{ p5.s
, p6.s
}, pn10
[1]
144 // CHECK-ENCODING
: [0x55,0x75,0xa0,0x25]
145 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
146 // CHECK-UNKNOWN
: 25a07555
<unknown
>
148 pext
{p7.s
, p8.s
}, pn13
[1] // 00100101-10100000-01110101-10110111
149 // CHECK-INST
: pext
{ p7.s
, p8.s
}, pn13
[1]
150 // CHECK-ENCODING
: [0xb7,0x75,0xa0,0x25]
151 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
152 // CHECK-UNKNOWN
: 25a075b7
<unknown
>
154 pext
{p15.s
, p0.s
}, pn15
[1] // 00100101-10100000-01110101-11111111
155 // CHECK-INST
: pext
{ p15.s
, p0.s
}, pn15
[1]
156 // CHECK-ENCODING
: [0xff,0x75,0xa0,0x25]
157 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
158 // CHECK-UNKNOWN
: 25a075ff
<unknown
>
160 pext
{p0.d
, p1.d
}, pn8
[0] // 00100101-11100000-01110100-00010000
161 // CHECK-INST
: pext
{ p0.d
, p1.d
}, pn8
[0]
162 // CHECK-ENCODING
: [0x10,0x74,0xe0,0x25]
163 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
164 // CHECK-UNKNOWN
: 25e07410
<unknown
>
166 pext
{p5.d
, p6.d
}, pn10
[1] // 00100101-11100000-01110101-01010101
167 // CHECK-INST
: pext
{ p5.d
, p6.d
}, pn10
[1]
168 // CHECK-ENCODING
: [0x55,0x75,0xe0,0x25]
169 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
170 // CHECK-UNKNOWN
: 25e07555
<unknown
>
172 pext
{p7.d
, p8.d
}, pn13
[1] // 00100101-11100000-01110101-10110111
173 // CHECK-INST
: pext
{ p7.d
, p8.d
}, pn13
[1]
174 // CHECK-ENCODING
: [0xb7,0x75,0xe0,0x25]
175 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
176 // CHECK-UNKNOWN
: 25e075b7
<unknown
>
178 pext
{p15.d
, p0.d
}, pn15
[1] // 00100101-11100000-01110101-11111111
179 // CHECK-INST
: pext
{ p15.d
, p0.d
}, pn15
[1]
180 // CHECK-ENCODING
: [0xff,0x75,0xe0,0x25]
181 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
182 // CHECK-UNKNOWN
: 25e075ff
<unknown
>
184 pext
{p7.
b, p8.
b}, pn13
[1] // 00100101-00100000-01110101-10110111
185 // CHECK-INST
: pext
{ p7.
b, p8.
b }, pn13
[1]
186 // CHECK-ENCODING
: [0xb7,0x75,0x20,0x25]
187 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
188 // CHECK-UNKNOWN
: 252075b7
<unknown
>
190 pext
{p15.
b, p0.
b}, pn15
[1] // 00100101-00100000-01110101-11111111
191 // CHECK-INST
: pext
{ p15.
b, p0.
b }, pn15
[1]
192 // CHECK-ENCODING
: [0xff,0x75,0x20,0x25]
193 // CHECK-ERROR
: instruction requires
: sme2
or sve2p1
194 // CHECK-UNKNOWN
: 252075ff
<unknown
>