# RUN:     llvm-mc -triple thumbv8a -mattr=+v8.3a,+neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-FP16
# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.2a,+neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=MISSING --check-prefix=MISSING-FP16
# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.3a,-neon,+fullfp16 -disassemble < %s 2>&1 | FileCheck %s --check-prefix=MISSING --check-prefix=MISSING-FP16
# RUN: not llvm-mc -triple thumbv8a -mattr=+v8.3a,+neon,-fullfp16 -disassemble < %s 2>%t | FileCheck %s --check-prefix=CHECK
# RUN: FileCheck %s < %t --check-prefix=MISSING-FP16

[0x21,0xfc,0x02,0x08]
# CHECK-FP16: vcmla.f16       d0, d1, d2, #0
# MISSING-FP16: warning: invalid instruction encoding
[0x22,0xfc,0x44,0x08]
# CHECK-FP16: vcmla.f16       q0, q1, q2, #0
# MISSING-FP16: warning: invalid instruction encoding
[0x31,0xfc,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2, #0
# MISSING: warning: invalid instruction encoding
[0x32,0xfc,0x44,0x08]
# CHECK: vcmla.f32       q0, q1, q2, #0
# MISSING: warning: invalid instruction encoding
[0xb1,0xfc,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2, #90
# MISSING: warning: invalid instruction encoding
[0x31,0xfd,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2, #180
# MISSING: warning: invalid instruction encoding
[0xb1,0xfd,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2, #270
# MISSING: warning: invalid instruction encoding
[0x81,0xfc,0x02,0x08]
# CHECK-FP16: vcadd.f16       d0, d1, d2, #90
# MISSING-FP16: warning: invalid instruction encoding
[0x82,0xfc,0x44,0x08]
# CHECK-FP16: vcadd.f16       q0, q1, q2, #90
# MISSING-FP16: warning: invalid instruction encoding
[0x91,0xfc,0x02,0x08]
# CHECK: vcadd.f32       d0, d1, d2, #90
# MISSING: warning: invalid instruction encoding
[0x92,0xfc,0x44,0x08]
# CHECK: vcadd.f32       q0, q1, q2, #90
# MISSING: warning: invalid instruction encoding
[0x91,0xfd,0x02,0x08]
# CHECK: vcadd.f32       d0, d1, d2, #270
# MISSING: warning: invalid instruction encoding
[0x01,0xfe,0x02,0x08]
# CHECK-FP16: vcmla.f16       d0, d1, d2[0], #0
# MISSING-FP16: warning: invalid instruction encoding
[0x02,0xfe,0x42,0x08]
# CHECK-FP16: vcmla.f16       q0, q1, d2[0], #0
# MISSING-FP16: warning: invalid instruction encoding
[0x81,0xfe,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2[0], #0
# MISSING: warning: invalid instruction encoding
[0x82,0xfe,0x42,0x08]
# CHECK: vcmla.f32       q0, q1, d2[0], #0
# MISSING: warning: invalid instruction encoding
[0x91,0xfe,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2[0], #90
# MISSING: warning: invalid instruction encoding
[0xa1,0xfe,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2[0], #180
# MISSING: warning: invalid instruction encoding
[0xb1,0xfe,0x02,0x08]
# CHECK: vcmla.f32       d0, d1, d2[0], #270
# MISSING: warning: invalid instruction encoding
[0x01,0xfe,0x22,0x08]
# CHECK-FP16: vcmla.f16       d0, d1, d2[1], #0
# MISSING-FP16: warning: invalid instruction encoding
