| @ 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: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vsub.f16 d0, d1, d2 |
| vsub.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmul.f16 d0, d1, d2 |
| vmul.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmul.f16 d1, d2, d3[2] |
| vmul.f16 q4, q5, d6[3] |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmla.f16 d0, d1, d2 |
| vmla.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmla.f16 d5, d6, d7[2] |
| vmla.f16 q5, q6, d7[3] |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmls.f16 d0, d1, d2 |
| vmls.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmls.f16 d5, d6, d7[2] |
| vmls.f16 q5, q6, d7[3] |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vfma.f16 d0, d1, d2 |
| vfma.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vfms.f16 d0, d1, d2 |
| vfms.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vceq.f16 d2, d3, d4 |
| vceq.f16 q2, q3, q4 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vceq.f16 d2, d3, #0 |
| vceq.f16 q2, q3, #0 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcge.f16 d2, d3, d4 |
| vcge.f16 q2, q3, q4 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcge.f16 d2, d3, #0 |
| vcge.f16 q2, q3, #0 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcgt.f16 d2, d3, d4 |
| vcgt.f16 q2, q3, q4 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcgt.f16 d2, d3, #0 |
| vcgt.f16 q2, q3, #0 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcle.f16 d2, d3, d4 |
| vcle.f16 q2, q3, q4 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcle.f16 d2, d3, #0 |
| vcle.f16 q2, q3, #0 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vclt.f16 d2, d3, d4 |
| vclt.f16 q2, q3, q4 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vclt.f16 d2, d3, #0 |
| vclt.f16 q2, q3, #0 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vacge.f16 d0, d1, d2 |
| vacge.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vacgt.f16 d0, d1, d2 |
| vacgt.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vacle.f16 d0, d1, d2 |
| vacle.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vaclt.f16 d0, d1, d2 |
| vaclt.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vabd.f16 d0, d1, d2 |
| vabd.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vabs.f16 d0, d1 |
| vabs.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmax.f16 d0, d1, d2 |
| vmax.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmin.f16 d0, d1, d2 |
| vmin.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vmaxnm.f16 d0, d1, d2 |
| vmaxnm.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vminnm.f16 d0, d1, d2 |
| vminnm.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vpadd.f16 d0, d1, d2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vpmax.f16 d0, d1, d2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vpmin.f16 d0, d1, d2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrecpe.f16 d0, d1 |
| vrecpe.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrecps.f16 d0, d1, d2 |
| vrecps.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrsqrte.f16 d0, d1 |
| vrsqrte.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrsqrts.f16 d0, d1, d2 |
| vrsqrts.f16 q0, q1, q2 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vneg.f16 d0, d1 |
| vneg.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| 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: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcvta.s16.f16 d0, d1 |
| vcvta.s16.f16 q0, q1 |
| vcvta.u16.f16 d0, d1 |
| vcvta.u16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcvtm.s16.f16 d0, d1 |
| vcvtm.s16.f16 q0, q1 |
| vcvtm.u16.f16 d0, d1 |
| vcvtm.u16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcvtn.s16.f16 d0, d1 |
| vcvtn.s16.f16 q0, q1 |
| vcvtn.u16.f16 d0, d1 |
| vcvtn.u16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vcvtp.s16.f16 d0, d1 |
| vcvtp.s16.f16 q0, q1 |
| vcvtp.u16.f16 d0, d1 |
| vcvtp.u16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| |
| 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: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrinta.f16.f16 d0, d1 |
| vrinta.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrintm.f16.f16 d0, d1 |
| vrintm.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrintn.f16.f16 d0, d1 |
| vrintn.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrintp.f16.f16 d0, d1 |
| vrintp.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrintx.f16.f16 d0, d1 |
| vrintx.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| |
| vrintz.f16.f16 d0, d1 |
| vrintz.f16.f16 q0, q1 |
| @ CHECK: instruction requires: {{full half-float|NEON}} |
| @ CHECK: instruction requires: {{full half-float|NEON}} |