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

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