1# RUN:     llvm-mc -triple thumbv8a -mattr=+v8.3a,+neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-FP16
2# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.2a,+neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=MISSING --check-prefix=MISSING-FP16
3# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.3a,-neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=MISSING --check-prefix=MISSING-FP16
4# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.3a,+neon,-fullfp16 -disassemble < %s 2>%t | FileCheck %s --check-prefix=CHECK
5# RUN: FileCheck %s < %t --check-prefix=MISSING-FP16
6
7[0x21,0xfc,0x02,0x08]
8# CHECK-FP16: vcmla.f16       d0, d1, d2, #0
9# MISSING-FP16: warning: invalid instruction encoding
10[0x22,0xfc,0x44,0x08]
11# CHECK-FP16: vcmla.f16       q0, q1, q2, #0
12# MISSING-FP16: warning: invalid instruction encoding
13[0x31,0xfc,0x02,0x08]
14# CHECK: vcmla.f32       d0, d1, d2, #0
15# MISSING: warning: invalid instruction encoding
16[0x32,0xfc,0x44,0x08]
17# CHECK: vcmla.f32       q0, q1, q2, #0
18# MISSING: warning: invalid instruction encoding
19[0xb1,0xfc,0x02,0x08]
20# CHECK: vcmla.f32       d0, d1, d2, #90
21# MISSING: warning: invalid instruction encoding
22[0x31,0xfd,0x02,0x08]
23# CHECK: vcmla.f32       d0, d1, d2, #180
24# MISSING: warning: invalid instruction encoding
25[0xb1,0xfd,0x02,0x08]
26# CHECK: vcmla.f32       d0, d1, d2, #270
27# MISSING: warning: invalid instruction encoding
28[0x81,0xfc,0x02,0x08]
29# CHECK-FP16: vcadd.f16       d0, d1, d2, #90
30# MISSING-FP16: warning: invalid instruction encoding
31[0x82,0xfc,0x44,0x08]
32# CHECK-FP16: vcadd.f16       q0, q1, q2, #90
33# MISSING-FP16: warning: invalid instruction encoding
34[0x91,0xfc,0x02,0x08]
35# CHECK: vcadd.f32       d0, d1, d2, #90
36# MISSING: warning: invalid instruction encoding
37[0x92,0xfc,0x44,0x08]
38# CHECK: vcadd.f32       q0, q1, q2, #90
39# MISSING: warning: invalid instruction encoding
40[0x91,0xfd,0x02,0x08]
41# CHECK: vcadd.f32       d0, d1, d2, #270
42# MISSING: warning: invalid instruction encoding
43[0x01,0xfe,0x02,0x08]
44# CHECK-FP16: vcmla.f16       d0, d1, d2[0], #0
45# MISSING-FP16: warning: invalid instruction encoding
46[0x02,0xfe,0x42,0x08]
47# CHECK-FP16: vcmla.f16       q0, q1, d2[0], #0
48# MISSING-FP16: warning: invalid instruction encoding
49[0x81,0xfe,0x02,0x08]
50# CHECK: vcmla.f32       d0, d1, d2[0], #0
51# MISSING: warning: invalid instruction encoding
52[0x82,0xfe,0x42,0x08]
53# CHECK: vcmla.f32       q0, q1, d2[0], #0
54# MISSING: warning: invalid instruction encoding
55[0x91,0xfe,0x02,0x08]
56# CHECK: vcmla.f32       d0, d1, d2[0], #90
57# MISSING: warning: invalid instruction encoding
58[0xa1,0xfe,0x02,0x08]
59# CHECK: vcmla.f32       d0, d1, d2[0], #180
60# MISSING: warning: invalid instruction encoding
61[0xb1,0xfe,0x02,0x08]
62# CHECK: vcmla.f32       d0, d1, d2[0], #270
63# MISSING: warning: invalid instruction encoding
64[0x01,0xfe,0x22,0x08]
65# CHECK-FP16: vcmla.f16       d0, d1, d2[1], #0
66# MISSING-FP16: warning: invalid instruction encoding
67