@ RUN: not llvm-mc -triple armv8a-none-eabi -mattr=-fullfp16,+neon -show-encoding < %s 2>&1 | FileCheck %s @ RUN: not llvm-mc -triple armv8a-none-eabi -mattr=+fullfp16,-neon -show-encoding < %s 2>&1 | FileCheck %s @ RUN: not llvm-mc -triple thumbv8a-none-eabi -mattr=-fullfp16,+neon -show-encoding < %s 2>&1 | FileCheck %s @ RUN: not llvm-mc -triple thumbv8a-none-eabi -mattr=+fullfp16,-neon -show-encoding < %s 2>&1 | FileCheck %s vadd.f16 d0, d1, d2 vadd.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vsub.f16 d0, d1, d2 vsub.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmul.f16 d0, d1, d2 vmul.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmul.f16 d1, d2, d3[2] vmul.f16 q4, q5, d6[3] @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmla.f16 d0, d1, d2 vmla.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmla.f16 d5, d6, d7[2] vmla.f16 q5, q6, d7[3] @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmls.f16 d0, d1, d2 vmls.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmls.f16 d5, d6, d7[2] vmls.f16 q5, q6, d7[3] @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vfma.f16 d0, d1, d2 vfma.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vfms.f16 d0, d1, d2 vfms.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vceq.f16 d2, d3, d4 vceq.f16 q2, q3, q4 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vceq.f16 d2, d3, #0 vceq.f16 q2, q3, #0 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcge.f16 d2, d3, d4 vcge.f16 q2, q3, q4 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcge.f16 d2, d3, #0 vcge.f16 q2, q3, #0 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcgt.f16 d2, d3, d4 vcgt.f16 q2, q3, q4 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcgt.f16 d2, d3, #0 vcgt.f16 q2, q3, #0 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcle.f16 d2, d3, d4 vcle.f16 q2, q3, q4 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcle.f16 d2, d3, #0 vcle.f16 q2, q3, #0 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vclt.f16 d2, d3, d4 vclt.f16 q2, q3, q4 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vclt.f16 d2, d3, #0 vclt.f16 q2, q3, #0 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vacge.f16 d0, d1, d2 vacge.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vacgt.f16 d0, d1, d2 vacgt.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vacle.f16 d0, d1, d2 vacle.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vaclt.f16 d0, d1, d2 vaclt.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vabd.f16 d0, d1, d2 vabd.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vabs.f16 d0, d1 vabs.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmax.f16 d0, d1, d2 vmax.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmin.f16 d0, d1, d2 vmin.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vmaxnm.f16 d0, d1, d2 vmaxnm.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vminnm.f16 d0, d1, d2 vminnm.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vpadd.f16 d0, d1, d2 @ CHECK: error: instruction requires: vpmax.f16 d0, d1, d2 @ CHECK: error: instruction requires: vpmin.f16 d0, d1, d2 @ CHECK: error: instruction requires: vrecpe.f16 d0, d1 vrecpe.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrecps.f16 d0, d1, d2 vrecps.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrsqrte.f16 d0, d1 vrsqrte.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrsqrts.f16 d0, d1, d2 vrsqrts.f16 q0, q1, q2 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vneg.f16 d0, d1 vneg.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvt.s16.f16 d0, d1 vcvt.u16.f16 d0, d1 vcvt.f16.s16 d0, d1 vcvt.f16.u16 d0, d1 vcvt.s16.f16 q0, q1 vcvt.u16.f16 q0, q1 vcvt.f16.s16 q0, q1 vcvt.f16.u16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvta.s16.f16 d0, d1 vcvta.s16.f16 q0, q1 vcvta.u16.f16 d0, d1 vcvta.u16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvtm.s16.f16 d0, d1 vcvtm.s16.f16 q0, q1 vcvtm.u16.f16 d0, d1 vcvtm.u16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvtn.s16.f16 d0, d1 vcvtn.s16.f16 q0, q1 vcvtn.u16.f16 d0, d1 vcvtn.u16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvtp.s16.f16 d0, d1 vcvtp.s16.f16 q0, q1 vcvtp.u16.f16 d0, d1 vcvtp.u16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vcvt.s16.f16 d0, d1, #1 vcvt.u16.f16 d0, d1, #2 vcvt.f16.s16 d0, d1, #3 vcvt.f16.u16 d0, d1, #4 vcvt.s16.f16 q0, q1, #5 vcvt.u16.f16 q0, q1, #6 vcvt.f16.s16 q0, q1, #7 vcvt.f16.u16 q0, q1, #8 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrinta.f16.f16 d0, d1 vrinta.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrintm.f16.f16 d0, d1 vrintm.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrintn.f16.f16 d0, d1 vrintn.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrintp.f16.f16 d0, d1 vrintp.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrintx.f16.f16 d0, d1 vrintx.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: vrintz.f16.f16 d0, d1 vrintz.f16.f16 q0, q1 @ CHECK: error: instruction requires: @ CHECK: error: instruction requires: