1// RUN: not llvm-mc -triple=aarch64 -mattr=+sve,bf16  2>&1 < %s| FileCheck %s
2
3bfdot z0.s, z1.s, z2.h
4// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
5// CHECK-NEXT: bfdot z0.s, z1.s, z2.h
6// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
7
8bfdot z0.h, z1.h, z2.h
9// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
10// CHECK-NEXT: bfdot z0.h, z1.h, z2.h
11// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
12
13bfdot z0.s, z1.h, z2.s
14// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected z0.h..z7.h
15// CHECK-NEXT: bfdot z0.s, z1.h, z2.s
16// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
17
18movprfx z0.s, p0/m, z7.s
19bfdot z0.s, z1.h, z2.h
20// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx
21// CHECK-NEXT: bfdot z0.s, z1.h, z2.h
22// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
23
24bfdot z0.s, z1.s, z2.h[0]
25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
26// CHECK-NEXT: bfdot z0.s, z1.s, z2.h[0]
27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
28
29bfdot z0.h, z1.h, z2.h[0]
30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
31// CHECK-NEXT: bfdot z0.h, z1.h, z2.h[0]
32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
33
34bfdot z0.s, z1.h, z2.s[0]
35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected z0.h..z7.h
36// CHECK-NEXT: bfdot z0.s, z1.h, z2.s[0]
37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
38
39bfdot z0.s, z1.h, z8.h[0]
40// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
41// CHECK-NEXT: bfdot z0.s, z1.h, z8.h[0]
42// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
43
44bfdot z0.s, z1.h, z2.h[4]
45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
46// CHECK-NEXT: bfdot z0.s, z1.h, z2.h[4]
47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
48
49movprfx z0.s, p0/m, z7.s
50bfdot z0.s, z1.h, z2.h[0]
51// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx
52// CHECK-NEXT: bfdot z0.s, z1.h, z2.h[0]
53// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
54