[AArch64] Add ARMv8.2-A FP16 vector instructions
authorOliver Stannard <oliver.stannard@arm.com>
Tue, 8 Dec 2015 12:16:10 +0000 (12:16 +0000)
committerOliver Stannard <oliver.stannard@arm.com>
Tue, 8 Dec 2015 12:16:10 +0000 (12:16 +0000)
commit59ad77e46ed43d552c2dee1ffd8e5bd522022919
treeadf9acf2eb8cfacece6a6f950d3eb17ccc796fcf
parent2450ea130a3776fe6285f19feea9ae330e2a7ba7
[AArch64] Add ARMv8.2-A FP16 vector instructions

ARMv8.2-A adds 16-bit floating point versions of all existing SIMD
floating-point instructions. This is an optional extension, so all of
these instructions require the FeatureFullFP16 subtarget feature.

Note that VFP without SIMD is not a valid combination for any version of
ARMv8-A, but I have ensured that these instructions all depend on both
FeatureNEON and FeatureFullFP16 for consistency.

The ".2h" vector type specifier is now legal (for the scalar pairwise
reduction instructions), so some unrelated tests have been modified as
different error messages are emitted. This is not a problem as the
invalid operands are still caught.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255010 91177308-0d34-0410-b5e6-96231b3b80d8
31 files changed:
lib/Target/AArch64/AArch64InstrFormats.td
lib/Target/AArch64/AArch64InstrInfo.td
lib/Target/AArch64/AArch64RegisterInfo.td
lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
test/MC/AArch64/arm64-advsimd.s
test/MC/AArch64/armv8.1a-rdma.s
test/MC/AArch64/fullfp16-diagnostics.s [new file with mode: 0644]
test/MC/AArch64/fullfp16-neon-neg.s [new file with mode: 0644]
test/MC/AArch64/neon-2velem.s
test/MC/AArch64/neon-aba-abd.s
test/MC/AArch64/neon-across.s
test/MC/AArch64/neon-add-pairwise.s
test/MC/AArch64/neon-add-sub-instructions.s
test/MC/AArch64/neon-compare-instructions.s
test/MC/AArch64/neon-diagnostics.s
test/MC/AArch64/neon-facge-facgt.s
test/MC/AArch64/neon-frsqrt-frecp.s
test/MC/AArch64/neon-max-min-pairwise.s
test/MC/AArch64/neon-max-min.s
test/MC/AArch64/neon-mla-mls-instructions.s
test/MC/AArch64/neon-scalar-abs.s
test/MC/AArch64/neon-scalar-by-elem-mla.s
test/MC/AArch64/neon-scalar-by-elem-mul.s
test/MC/AArch64/neon-scalar-cvt.s
test/MC/AArch64/neon-scalar-fp-compare.s
test/MC/AArch64/neon-scalar-mul.s
test/MC/AArch64/neon-scalar-recip.s
test/MC/AArch64/neon-scalar-reduce-pairwise.s
test/MC/AArch64/neon-simd-misc.s
test/MC/AArch64/neon-simd-shift.s
test/MC/Disassembler/AArch64/fullfp16-neon-neg.txt [new file with mode: 0644]