[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / MC / AArch64 / SVE / bfmlal.s
blobb97fd2edc9890dbc237b4d54c60ac99ac4bfebda
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.
61 movprfx z0, z7
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
71 movprfx z0, z7
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
81 movprfx z0, z7
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
91 movprfx z0, z7
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
101 movprfx z0, z7
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
111 movprfx z0, z7
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
121 movprfx z0, z7
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
131 movprfx z10, z7
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
141 movprfx z14, z7
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
151 movprfx z21, z7
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