1 // RUN
: not llvm-mc
-triple arm
-mattr
=+fp16fml
,+neon
-show-encoding
< %s
2>&1 | FileCheck
%s
--check-prefix
=CHECK-ERROR
3 VFMAL.
F16 D0
, S1
, S2
[2]
4 vfmsl.
f16 d0
, s1
, s2
[2]
5 vfmsl.
f16 d0
, s1
, s2
[-1]
6 vfmal.
f16 q0
, d1
, d2
[4]
7 VFMSL.
F16 Q0
, D1
, D2
[4]
8 vfmal.
f16 q0
, d1
, d2
[-1]
9 VFMSL.
F16 D0
, S1
, S16
[0]
10 vfmal.
f16 d0
, s1
, s16
[0]
11 VFMSL.
F16 Q0
, D1
, D8
[0]
12 vfmal.
f16 q0
, d1
, d8
[0]
14 //CHECK-ERROR
: error
: invalid operand for instruction
15 //CHECK-ERROR-NEXT
: VFMAL.
F16 D0
, S1
, S2
[2]
17 //CHECK-ERROR-NEXT
: error
: invalid operand for instruction
18 //CHECK-ERROR-NEXT
: vfmsl.
f16 d0
, s1
, s2
[2]
20 //CHECK-ERROR-NEXT
: error
: invalid operand for instruction
21 //CHECK-ERROR-NEXT
: vfmsl.
f16 d0
, s1
, s2
[-1]
23 //CHECK-ERROR-NEXT
: error
: invalid operand for instruction
24 //CHECK-ERROR-NEXT
: vfmal.
f16 q0
, d1
, d2
[4]
26 //CHECK-ERROR-NEXT
: error
: invalid operand for instruction
27 //CHECK-ERROR-NEXT
: VFMSL.
F16 Q0
, D1
, D2
[4]
29 //CHECK-ERROR-NEXT
: error
: invalid operand for instruction
30 //CHECK-ERROR-NEXT
: vfmal.
f16 q0
, d1
, d2
[-1]
32 //CHECK-ERROR-NEXT
: error
: invalid instruction
, any one of the following would fix this
:
33 //CHECK-ERROR-NEXT
: VFMSL.
F16 D0
, S1
, S16
[0]
35 //CHECK-ERROR-NEXT
: note
: operand must
be a register in range
[s0
, s15
]
36 //CHECK-ERROR-NEXT
: VFMSL.
F16 D0
, S1
, S16
[0]
38 //CHECK-ERROR-NEXT
: note
: too many operands for instruction
39 //CHECK-ERROR-NEXT
: VFMSL.
F16 D0
, S1
, S16
[0]
41 //CHECK-ERROR-NEXT
: error
: invalid instruction
, any one of the following would fix this
:
42 //CHECK-ERROR-NEXT
: vfmal.
f16 d0
, s1
, s16
[0]
44 //CHECK-ERROR-NEXT
: note
: operand must
be a register in range
[s0
, s15
]
45 //CHECK-ERROR-NEXT
: vfmal.
f16 d0
, s1
, s16
[0]
47 //CHECK-ERROR-NEXT
: note
: too many operands for instruction
48 //CHECK-ERROR-NEXT
: vfmal.
f16 d0
, s1
, s16
[0]
50 //CHECK-ERROR-NEXT
: : error
: invalid instruction
, any one of the following would fix this
:
51 //CHECK-ERROR-NEXT
: VFMSL.
F16 Q0
, D1
, D8
[0]
53 //CHECK-ERROR-NEXT
: : note
: operand must
be a register in range
[d0
, d7
]
54 //CHECK-ERROR-NEXT
: VFMSL.
F16 Q0
, D1
, D8
[0]
56 //CHECK-ERROR-NEXT
: : note
: too many operands for instruction
57 //CHECK-ERROR-NEXT
: VFMSL.
F16 Q0
, D1
, D8
[0]
59 //CHECK-ERROR-NEXT
: : error
: invalid instruction
, any one of the following would fix this
:
60 //CHECK-ERROR-NEXT
: vfmal.
f16 q0
, d1
, d8
[0]
62 //CHECK-ERROR-NEXT
: : note
: operand must
be a register in range
[d0
, d7
]
63 //CHECK-ERROR-NEXT
: vfmal.
f16 q0
, d1
, d8
[0]
65 //CHECK-ERROR-NEXT
: 1: note
: too many operands for instruction
66 //CHECK-ERROR-NEXT
: vfmal.
f16 q0
, d1
, d8
[0]