[AArch64][SVE] Asm: Support for predicated unary operations.
authorSander de Smalen <sander.desmalen@arm.com>
Tue, 10 Jul 2018 14:05:55 +0000 (14:05 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Tue, 10 Jul 2018 14:05:55 +0000 (14:05 +0000)
commit53108d48f74e3bd68b82b17238d6872534dfb87c
tree69b0c64f9052a9e3cb4bf29adca682cc3a5a4dd2
parent3ae7d63c80f1221864a9fa0bafc4ab98f3aba0d3
[AArch64][SVE] Asm: Support for predicated unary operations.

This patch adds support for the following instructions:
  CLS  (Count Leading Sign bits)
  CLZ  (Count Leading Zeros)
  CNT  (Count non-zero bits)
  CNOT (Logically invert boolean condition in vector)
  NOT  (Bitwise invert vector)
  FABS (Floating-point absolute value)
  FNEG (Floating-point negate)

All operations are predicated and unary, e.g.
  clz  z0.s, p0/m, z1.s

- CLS, CLZ, CNT, CNOT and NOT have variants for 8, 16, 32
  and 64 bit elements.

- FABS and FNEG have variants for 16, 32 and 64 bit elements.

llvm-svn: 336677
16 files changed:
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/SVE/cls-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/cls.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/clz-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/clz.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/cnot-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/cnot.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/cnt-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/cnt.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fabs-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fabs.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fneg-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fneg.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/not-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/not.s