[AArch64][SVE] Asm: FP fused multiply-add/subtract instructions.
authorSander de Smalen <sander.desmalen@arm.com>
Tue, 17 Jul 2018 13:58:46 +0000 (13:58 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Tue, 17 Jul 2018 13:58:46 +0000 (13:58 +0000)
commitf41dd122d67ee45007e8f26142ad34fec622d748
treea2a3271c7d86546dbc58719fcac7b895702b2085
parentb892e4194f2e6565ecc1e474d2b3e12c5d2a56ac
[AArch64][SVE] Asm: FP fused multiply-add/subtract instructions.

This patch adds support for the following instructions:

  FMLA    mul-add, writing addend                (Zda =  Zda +   Zn * Zm)
  FNMLA   negated mul-add, writing addend        (Zda = -Zda +  -Zn * Zm)

  FMLS    mul-sub, writing addend                (Zda =  Zda +  -Zn * Zm)
  FNMLS   negated mul-sub, writing addend        (Zda = -Zda +   Zn * Zm)

  FMAD    mul-add, writing multiplicant          (Zdn =  Za  +  Zdn * Zm)
  FNMAD   negated mul-add, writing multiplicant  (Zdn = -Za  + -Zdn * Zm)

  FMSB    mul-sub, writing multiplicant          (Zdn =  Za  + -Zdn * Zm)
  FNMSB   negated mul-sub, writing multiplicant  (Zdn = -Za  +  Zdn * Zm)

llvm-svn: 337282
18 files changed:
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/SVE/fmad-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmad.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmla-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmla.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmls-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmls.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmsb-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fmsb.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmad-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmad.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmla-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmla.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmls-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmls.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmsb-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/fnmsb.s [new file with mode: 0644]