xref: /llvm-project/llvm/test/MC/ARM/bfloat16-a32-errors2.s (revision 71ae267d1f4117473eb00d9fd3391733b843ca3c)
1*71ae267dSTies Stuij// RUN: not llvm-mc -o - -triple arm -mattr=+v8.6a -show-encoding %s 2>&1 | FileCheck %s
2*71ae267dSTies Stuijvfmat.bf16 d0, d0, d0
3*71ae267dSTies Stuijvfmat.bf16 d0, d0, q0
4*71ae267dSTies Stuijvfmat.bf16 d0, q0, d0
5*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0
6*71ae267dSTies Stuijvfmat.bf16 q0, q0, d0
7*71ae267dSTies Stuijvfmat.bf16 q0, d0, q0
8*71ae267dSTies Stuijvfmat.bf16 d0, q0, q0
9*71ae267dSTies Stuijvfmat.bf16 q0, q0, q0[3]
10*71ae267dSTies Stuijvfmat.bf16 q0, q0, q0[3]
11*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0[0]
12*71ae267dSTies Stuijvfmat.bf16 d0, q0, d0[0]
13*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0[9]
14*71ae267dSTies Stuij
15*71ae267dSTies Stuijvfmab.bf16 d0, d0, d0
16*71ae267dSTies Stuijvfmab.bf16 d0, d0, q0
17*71ae267dSTies Stuijvfmab.bf16 d0, q0, d0
18*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0
19*71ae267dSTies Stuijvfmab.bf16 q0, q0, d0
20*71ae267dSTies Stuijvfmab.bf16 q0, d0, q0
21*71ae267dSTies Stuijvfmab.bf16 d0, q0, q0
22*71ae267dSTies Stuijvfmab.bf16 q0, q0, q0[3]
23*71ae267dSTies Stuijvfmab.bf16 q0, q0, q0[3]
24*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0[0]
25*71ae267dSTies Stuijvfmab.bf16 d0, q0, d0[0]
26*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0[9]
27*71ae267dSTies Stuij
28*71ae267dSTies Stuij//CHECK:error: invalid instruction
29*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, d0, d0
30*71ae267dSTies Stuij//CHECK-NEXT:^
31*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
32*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, d0, q0
33*71ae267dSTies Stuij//CHECK-NEXT:^
34*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
35*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, d0
36*71ae267dSTies Stuij//CHECK-NEXT:^
37*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
38*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0
39*71ae267dSTies Stuij//CHECK-NEXT:^
40*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
41*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0
42*71ae267dSTies Stuij//CHECK-NEXT:^
43*71ae267dSTies Stuij//CHECK-NEXT:note: too few operands for instruction
44*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0
45*71ae267dSTies Stuij//CHECK-NEXT:                      ^
46*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [q0, q15]
47*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0
48*71ae267dSTies Stuij//CHECK-NEXT:                    ^
49*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
50*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, q0
51*71ae267dSTies Stuij//CHECK-NEXT:                ^
52*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
53*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, q0
54*71ae267dSTies Stuij//CHECK-NEXT:            ^
55*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
56*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
57*71ae267dSTies Stuij//CHECK-NEXT:^
58*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7]
59*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
60*71ae267dSTies Stuij//CHECK-NEXT:                    ^
61*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction
62*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
63*71ae267dSTies Stuij//CHECK-NEXT:                      ^
64*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
65*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
66*71ae267dSTies Stuij//CHECK-NEXT:^
67*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7]
68*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
69*71ae267dSTies Stuij//CHECK-NEXT:                    ^
70*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction
71*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]
72*71ae267dSTies Stuij//CHECK-NEXT:                      ^
73*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
74*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0[0]
75*71ae267dSTies Stuij//CHECK-NEXT:                ^
76*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
77*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, d0[0]
78*71ae267dSTies Stuij//CHECK-NEXT:            ^
79*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
80*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0[9]
81*71ae267dSTies Stuij//CHECK-NEXT:^
82*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
83*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, d0, d0
84*71ae267dSTies Stuij//CHECK-NEXT:^
85*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
86*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, d0, q0
87*71ae267dSTies Stuij//CHECK-NEXT:^
88*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
89*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, d0
90*71ae267dSTies Stuij//CHECK-NEXT:^
91*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
92*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0
93*71ae267dSTies Stuij//CHECK-NEXT:^
94*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
95*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0
96*71ae267dSTies Stuij//CHECK-NEXT:^
97*71ae267dSTies Stuij//CHECK-NEXT:note: too few operands for instruction
98*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0
99*71ae267dSTies Stuij//CHECK-NEXT:                      ^
100*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [q0, q15]
101*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0
102*71ae267dSTies Stuij//CHECK-NEXT:                    ^
103*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
104*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, q0
105*71ae267dSTies Stuij//CHECK-NEXT:                ^
106*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
107*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, q0
108*71ae267dSTies Stuij//CHECK-NEXT:            ^
109*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
110*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
111*71ae267dSTies Stuij//CHECK-NEXT:^
112*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7]
113*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
114*71ae267dSTies Stuij//CHECK-NEXT:                    ^
115*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction
116*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
117*71ae267dSTies Stuij//CHECK-NEXT:                      ^
118*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:
119*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
120*71ae267dSTies Stuij//CHECK-NEXT:^
121*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7]
122*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
123*71ae267dSTies Stuij//CHECK-NEXT:                    ^
124*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction
125*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]
126*71ae267dSTies Stuij//CHECK-NEXT:                      ^
127*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
128*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0[0]
129*71ae267dSTies Stuij//CHECK-NEXT:                ^
130*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15]
131*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, d0[0]
132*71ae267dSTies Stuij//CHECK-NEXT:            ^
133*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction
134*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0[9]
135