1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/MC/ARM/fullfp16-neon-neg.s
Oliver Stannard dacbc9891d [ARM] Use new assembler diags for ARM
This converts the ARM AsmParser to use the new assembly matcher error
reporting mechanism, which allows errors to be reported for multiple
instruction encodings when it is ambiguous which one the user intended
to use.

By itself this doesn't improve many error messages, because we don't have
diagnostic text for most operand types, but as we add that then this will allow
more of those diagnostic strings to be used when they are relevant.

Differential revision: https://reviews.llvm.org/D31530

llvm-svn: 314779
2017-10-03 10:26:11 +00:00

290 lines
9.5 KiB
ArmAsm

@ 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}}