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
16 ld3q
{z0.q
, z1.q
, z2.q
}, p0
/z
, [x0
, x0
, lsl
#4] // 10100101-00100000-10000000-00000000
17 // CHECK-INST
: ld3q
{ z0.q
- z2.q
}, p0
/z
, [x0
, x0
, lsl
#4]
18 // CHECK-ENCODING
: [0x00,0x80,0x20,0xa5]
19 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
20 // CHECK-UNKNOWN
: a5208000
<unknown
>
22 ld3q
{z21.q
, z22.q
, z23.q
}, p5
/z
, [x10
, x21
, lsl
#4] // 10100101-00110101-10010101-01010101
23 // CHECK-INST
: ld3q
{ z21.q
- z23.q
}, p5
/z
, [x10
, x21
, lsl
#4]
24 // CHECK-ENCODING
: [0x55,0x95,0x35,0xa5]
25 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
26 // CHECK-UNKNOWN
: a5359555
<unknown
>
28 ld3q
{z23.q
, z24.q
, z25.q
}, p3
/z
, [x13
, x8
, lsl
#4] // 10100101-00101000-10001101-10110111
29 // CHECK-INST
: ld3q
{ z23.q
- z25.q
}, p3
/z
, [x13
, x8
, lsl
#4]
30 // CHECK-ENCODING
: [0xb7,0x8d,0x28,0xa5]
31 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
32 // CHECK-UNKNOWN
: a5288db7
<unknown
>
34 ld3q
{z0.q
, z1.q
, z2.q
}, p0
/z
, [x0
] // 10100101-00010000-11100000-00000000
35 // CHECK-INST
: ld3q
{ z0.q
- z2.q
}, p0
/z
, [x0
]
36 // CHECK-ENCODING
: [0x00,0xe0,0x10,0xa5]
37 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
38 // CHECK-UNKNOWN
: a510e000
<unknown
>
40 ld3q
{z21.q
, z22.q
, z23.q
}, p5
/z
, [x10
, #15, mul vl] // 10100101-00010101-11110101-01010101
41 // CHECK-INST
: ld3q
{ z21.q
- z23.q
}, p5
/z
, [x10
, #15, mul vl]
42 // CHECK-ENCODING
: [0x55,0xf5,0x15,0xa5]
43 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
44 // CHECK-UNKNOWN
: a515f555
<unknown
>
46 ld3q
{z23.q
, z24.q
, z25.q
}, p3
/z
, [x13
, #-24, mul vl] // 10100101-00011000-11101101-10110111
47 // CHECK-INST
: ld3q
{ z23.q
- z25.q
}, p3
/z
, [x13
, #-24, mul vl]
48 // CHECK-ENCODING
: [0xb7,0xed,0x18,0xa5]
49 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
50 // CHECK-UNKNOWN
: a518edb7
<unknown
>
52 ld3q
{z31.q
, z0.q
, z1.q
}, p7
/z
, [sp
, #-3, mul vl] // 10100101-00011111-11111111-11111111
53 // CHECK-INST
: ld3q
{ z31.q
, z0.q
, z1.q
}, p7
/z
, [sp
, #-3, mul vl]
54 // CHECK-ENCODING
: [0xff,0xff,0x1f,0xa5]
55 // CHECK-ERROR
: instruction requires
: sme2p1
or sve2p1
56 // CHECK-UNKNOWN
: a51fffff
<unknown
>