1+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p2 < %s \
2+ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2 < %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=+sve2p2 < %s \
8+ // RUN: | llvm-objdump -d --mattr=+sve2p2 - | FileCheck %s --check-prefix=CHECK-INST
9+ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2p2 < %s \
10+ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
11+ // Disassemble encoding and check the re-encoding (-show-encoding) matches.
12+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p2 < %s \
13+ // RUN: | sed '/.text /d' | sed 's/.*encoding: //g' \
14+ // RUN: | llvm-mc -triple=aarch64 -mattr=+sve2p2 -disassemble -show-encoding \
15+ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
16+
17+ firstp x0, p0, p0.b // 00100101-00100001-10000000-00000000
18+ // CHECK-INST: firstp x0, p0, p0.b
19+ // CHECK-ENCODING: [0x00,0x80,0x21,0x25]
20+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
21+ // CHECK-UNKNOWN: 25218000 <unknown>
22+
23+ firstp x23, p11, p13.b // 00100101-00100001-10101101-10110111
24+ // CHECK-INST: firstp x23, p11, p13.b
25+ // CHECK-ENCODING: [0xb7,0xad,0x21,0x25]
26+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
27+ // CHECK-UNKNOWN: 2521adb7 <unknown>
28+
29+ firstp xzr, p15, p15.b // 00100101-00100001-10111101-11111111
30+ // CHECK-INST: firstp xzr, p15, p15.b
31+ // CHECK-ENCODING: [0xff,0xbd,0x21,0x25]
32+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
33+ // CHECK-UNKNOWN: 2521bdff <unknown>
34+
35+ firstp x0, p0, p0.h // 00100101-01100001-10000000-00000000
36+ // CHECK-INST: firstp x0, p0, p0.h
37+ // CHECK-ENCODING: [0x00,0x80,0x61,0x25]
38+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
39+ // CHECK-UNKNOWN: 25618000 <unknown>
40+
41+ firstp x23, p11, p13.h // 00100101-01100001-10101101-10110111
42+ // CHECK-INST: firstp x23, p11, p13.h
43+ // CHECK-ENCODING: [0xb7,0xad,0x61,0x25]
44+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
45+ // CHECK-UNKNOWN: 2561adb7 <unknown>
46+
47+ firstp xzr, p15, p15.h // 00100101-01100001-10111101-11111111
48+ // CHECK-INST: firstp xzr, p15, p15.h
49+ // CHECK-ENCODING: [0xff,0xbd,0x61,0x25]
50+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
51+ // CHECK-UNKNOWN: 2561bdff <unknown>
52+
53+ firstp x0, p0, p0.s // 00100101-10100001-10000000-00000000
54+ // CHECK-INST: firstp x0, p0, p0.s
55+ // CHECK-ENCODING: [0x00,0x80,0xa1,0x25]
56+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
57+ // CHECK-UNKNOWN: 25a18000 <unknown>
58+
59+ firstp x23, p11, p13.s // 00100101-10100001-10101101-10110111
60+ // CHECK-INST: firstp x23, p11, p13.s
61+ // CHECK-ENCODING: [0xb7,0xad,0xa1,0x25]
62+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
63+ // CHECK-UNKNOWN: 25a1adb7 <unknown>
64+
65+ firstp xzr, p15, p15.s // 00100101-10100001-10111101-11111111
66+ // CHECK-INST: firstp xzr, p15, p15.s
67+ // CHECK-ENCODING: [0xff,0xbd,0xa1,0x25]
68+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
69+ // CHECK-UNKNOWN: 25a1bdff <unknown>
70+
71+ firstp x0, p0, p0.d // 00100101-11100001-10000000-00000000
72+ // CHECK-INST: firstp x0, p0, p0.d
73+ // CHECK-ENCODING: [0x00,0x80,0xe1,0x25]
74+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
75+ // CHECK-UNKNOWN: 25e18000 <unknown>
76+
77+ firstp x23, p11, p13.d // 00100101-11100001-10101101-10110111
78+ // CHECK-INST: firstp x23, p11, p13.d
79+ // CHECK-ENCODING: [0xb7,0xad,0xe1,0x25]
80+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
81+ // CHECK-UNKNOWN: 25e1adb7 <unknown>
82+
83+ firstp xzr, p15, p15.d // 00100101-11100001-10111101-11111111
84+ // CHECK-INST: firstp xzr, p15, p15.d
85+ // CHECK-ENCODING: [0xff,0xbd,0xe1,0x25]
86+ // CHECK-ERROR: instruction requires: sme2p2 or sve2p2
87+ // CHECK-UNKNOWN: 25e1bdff <unknown>
0 commit comments