1 // RUN
: llvm-mc
-o
- -triple
=aarch64
-show-encoding
-mattr
=+sve
,+bf16
%s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
,+bf16
< %s \
4 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
5 // RUN
: not llvm-mc
-o
- -triple
=aarch64
-show-encoding
%s
2>&1 \
6 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
8 bfmlalb z0.S
, z1.H
, z2.H
9 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
10 // CHECK-ENCODING
: [0x20,0x80,0xe2,0x64]
11 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
13 bfmlalt z0.S
, z1.H
, z2.H
14 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
15 // CHECK-ENCODING
: [0x20,0x84,0xe2,0x64]
16 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
18 bfmlalb z0.S
, z1.H
, z2.H
[0]
19 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
[0]
20 // CHECK-ENCODING
: [0x20,0x40,0xe2,0x64]
21 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
23 bfmlalt z0.S
, z1.H
, z2.H
[0]
24 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
[0]
25 // CHECK-ENCODING
: [0x20,0x44,0xe2,0x64]
26 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
28 bfmlalb z0.S
, z1.H
, z2.H
[7]
29 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
[7]
30 // CHECK-ENCODING
: [0x20,0x48,0xfa,0x64]
31 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
33 bfmlalt z0.S
, z1.H
, z2.H
[7]
34 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
[7]
35 // CHECK-ENCODING
: [0x20,0x4c,0xfa,0x64]
36 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
38 bfmlalt z0.S
, z1.H
, z7.H
[7]
39 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z7.h
[7]
40 // CHECK-ENCODING
: [0x20,0x4c,0xff,0x64]
41 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
43 bfmlalb z10.S
, z21.H
, z14.H
44 // CHECK-INST
: bfmlalb z10.s
, z21.h
, z14.h
45 // CHECK-ENCODING
: [0xaa,0x82,0xee,0x64]
46 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
48 bfmlalt z14.S
, z10.H
, z21.H
49 // CHECK-INST
: bfmlalt z14.s
, z10.h
, z21.h
50 // CHECK-ENCODING
: [0x4e,0x85,0xf5,0x64]
51 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
53 bfmlalb z21.s
, z14.h
, z3.h
[2]
54 // CHECK-INST
: bfmlalb z21.s
, z14.h
, z3.h
[2]
55 // CHECK-ENCODING
: [0xd5,0x41,0xeb,0x64]
56 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
58 // --------------------------------------------------------------------------//
59 // Test compatibility with MOVPRFX instruction.
62 // CHECK-INST
: movprfx z0
, z7
63 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
64 // CHECK-ERROR
: instruction requires
: sve
or sme
66 bfmlalb z0.S
, z1.H
, z2.H
67 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
68 // CHECK-ENCODING
: [0x20,0x80,0xe2,0x64]
69 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
72 // CHECK-INST
: movprfx z0
, z7
73 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
74 // CHECK-ERROR
: instruction requires
: sve
or sme
76 bfmlalt z0.S
, z1.H
, z2.H
77 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
78 // CHECK-ENCODING
: [0x20,0x84,0xe2,0x64]
79 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
82 // CHECK-INST
: movprfx z0
, z7
83 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
84 // CHECK-ERROR
: instruction requires
: sve
or sme
86 bfmlalb z0.S
, z1.H
, z2.H
[0]
87 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
[0]
88 // CHECK-ENCODING
: [0x20,0x40,0xe2,0x64]
89 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
92 // CHECK-INST
: movprfx z0
, z7
93 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
94 // CHECK-ERROR
: instruction requires
: sve
or sme
96 bfmlalt z0.S
, z1.H
, z2.H
[0]
97 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
[0]
98 // CHECK-ENCODING
: [0x20,0x44,0xe2,0x64]
99 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
102 // CHECK-INST
: movprfx z0
, z7
103 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
104 // CHECK-ERROR
: instruction requires
: sve
or sme
106 bfmlalb z0.S
, z1.H
, z2.H
[7]
107 // CHECK-INST
: bfmlalb z0.s
, z1.h
, z2.h
[7]
108 // CHECK-ENCODING
: [0x20,0x48,0xfa,0x64]
109 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
112 // CHECK-INST
: movprfx z0
, z7
113 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
114 // CHECK-ERROR
: instruction requires
: sve
or sme
116 bfmlalt z0.S
, z1.H
, z2.H
[7]
117 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z2.h
[7]
118 // CHECK-ENCODING
: [0x20,0x4c,0xfa,0x64]
119 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
122 // CHECK-INST
: movprfx z0
, z7
123 // CHECK-ENCODING
: [0xe0,0xbc,0x20,0x04]
124 // CHECK-ERROR
: instruction requires
: sve
or sme
126 bfmlalt z0.S
, z1.H
, z7.H
[7]
127 // CHECK-INST
: bfmlalt z0.s
, z1.h
, z7.h
[7]
128 // CHECK-ENCODING
: [0x20,0x4c,0xff,0x64]
129 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
132 // CHECK-INST
: movprfx z10
, z7
133 // CHECK-ENCODING
: [0xea,0xbc,0x20,0x04]
134 // CHECK-ERROR
: instruction requires
: sve
or sme
136 bfmlalb z10.S
, z21.H
, z14.H
137 // CHECK-INST
: bfmlalb z10.s
, z21.h
, z14.h
138 // CHECK-ENCODING
: [0xaa,0x82,0xee,0x64]
139 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
142 // CHECK-INST
: movprfx z14
, z7
143 // CHECK-ENCODING
: [0xee,0xbc,0x20,0x04]
144 // CHECK-ERROR
: instruction requires
: sve
or sme
146 bfmlalt z14.S
, z10.H
, z21.H
147 // CHECK-INST
: bfmlalt z14.s
, z10.h
, z21.h
148 // CHECK-ENCODING
: [0x4e,0x85,0xf5,0x64]
149 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme
152 // CHECK-INST
: movprfx z21
, z7
153 // CHECK-ENCODING
: [0xf5,0xbc,0x20,0x04]
154 // CHECK-ERROR
: instruction requires
: sve
or sme
156 bfmlalb z21.s
, z14.h
, z3.h
[2]
157 // CHECK-INST
: bfmlalb z21.s
, z14.h
, z3.h
[2]
158 // CHECK-ENCODING
: [0xd5,0x41,0xeb,0x64]
159 // CHECK-ERROR
: instruction requires
: bf16 sve
or sme