1 // RUN
: llvm-mc
-triple arm
-mattr
=+fp16fml
,+neon
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK
2 // RUN
: llvm-mc
-triple thumb
-mattr
=+fp16fml
,+neon
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-T32
3 // RUN
: llvm-mc
-triple arm
-mattr
=-fullfp16
,+fp16fml
,+neon
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK
4 // RUN
: llvm-mc
-triple thumb
-mattr
=-fullfp16
,+fp16fml
,+neon
-show-encoding
< %s | FileCheck
%s
--check-prefix
=CHECK-T32
6 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a -show-encoding
< %s
2> %t
7 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML-NOR-NEON
< %t %s
8 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a -show-encoding
< %s
2> %t
9 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML-NOR-NEON
< %t %s
11 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a,+neon
-show-encoding
< %s
2> %t
12 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
13 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a,+neon
-show-encoding
< %s
2> %t
14 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
16 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a,+neon
,+fp16fml
,-fp16fml
-show-encoding
< %s
2> %t
17 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
18 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a,+neon
,+fp16fml
,-fp16fml
-show-encoding
< %s
2> %t
19 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
21 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a,+neon
,+fullfp16
-show-encoding
< %s
2> %t
22 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
23 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a,+neon
,+fullfp16
-show-encoding
< %s
2> %t
24 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
26 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a,+neon
,+fp16fml
,-fullfp16
-show-encoding
< %s
2> %t
27 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
28 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a,+neon
,+fp16fml
,-fullfp16
-show-encoding
< %s
2> %t
29 // RUN
: FileCheck
--check-prefix
=CHECK-NO-FP16FML
< %t %s
31 // RUN
: not llvm-mc
-triple arm
-mattr
=+v8.2
a,+fp16fml
-show-encoding
< %s
2> %t
32 // RUN
: FileCheck
--check-prefix
=CHECK-NO-NEON
< %t %s
33 // RUN
: not llvm-mc
-triple thumb
-mattr
=+v8.2
a,+fp16fml
-show-encoding
< %s
2> %t
34 // RUN
: FileCheck
--check-prefix
=CHECK-NO-NEON
< %t %s
41 VFMAL.
F16 D0
, S1
, S2
[1]
42 vfmsl.
f16 d0
, s1
, s2
[1]
43 vfmal.
f16 q0
, d1
, d2
[3]
44 VFMSL.
F16 Q0
, D1
, D2
[3]
46 //CHECK
: vfmal.
f16 d0
, s1
, s2 @ encoding
: [0x91,0x08,0x20,0xfc]
47 //CHECK
: vfmsl.
f16 d0
, s1
, s2 @ encoding
: [0x91,0x08,0xa0,0xfc]
48 //CHECK
: vfmal.
f16 q0
, d1
, d2 @ encoding
: [0x52,0x08,0x21,0xfc]
49 //CHECK
: vfmsl.
f16 q0
, d1
, d2 @ encoding
: [0x52,0x08,0xa1,0xfc]
51 //CHECK
: vfmal.
f16 d0
, s1
, s2
[1] @ encoding
: [0x99,0x08,0x00,0xfe]
52 //CHECK
: vfmsl.
f16 d0
, s1
, s2
[1] @ encoding
: [0x99,0x08,0x10,0xfe]
53 //CHECK
: vfmal.
f16 q0
, d1
, d2
[3] @ encoding
: [0x7a,0x08,0x01,0xfe]
54 //CHECK
: vfmsl.
f16 q0
, d1
, d2
[3] @ encoding
: [0x7a,0x08,0x11,0xfe]
56 //CHECK-T32
: vfmal.
f16 d0
, s1
, s2 @ encoding
: [0x20,0xfc,0x91,0x08]
57 //CHECK-T32
: vfmsl.
f16 d0
, s1
, s2 @ encoding
: [0xa0,0xfc,0x91,0x08]
58 //CHECK-T32
: vfmal.
f16 q0
, d1
, d2 @ encoding
: [0x21,0xfc,0x52,0x08]
59 //CHECK-T32
: vfmsl.
f16 q0
, d1
, d2 @ encoding
: [0xa1,0xfc,0x52,0x08]
61 //CHECK-T32
: vfmal.
f16 d0
, s1
, s2
[1] @ encoding
: [0x00,0xfe,0x99,0x08]
62 //CHECK-T32
: vfmsl.
f16 d0
, s1
, s2
[1] @ encoding
: [0x10,0xfe,0x99,0x08]
63 //CHECK-T32
: vfmal.
f16 q0
, d1
, d2
[3] @ encoding
: [0x01,0xfe,0x7a,0x08]
64 //CHECK-T32
: vfmsl.
f16 q0
, d1
, d2
[3] @ encoding
: [0x11,0xfe,0x7a,0x08]
66 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
67 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
68 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
69 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
70 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
71 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
72 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
73 //CHECK-NO-FP16FML
: instruction requires
: full half-float fml
{{$
}}
75 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
76 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
77 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
78 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
79 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
80 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
81 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
82 //CHECK-NO-FP16FML-NOR-NEON
: instruction requires
: full half-float fml NEON
{{$
}}
84 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
85 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
86 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
87 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
88 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
89 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
90 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}
91 //CHECK-NO-NEON
: instruction requires
: NEON
{{$
}}