[AArch64][SVE] Asm: Support for UDOT/SDOT instructions.
authorSander de Smalen <sander.desmalen@arm.com>
Wed, 18 Jul 2018 09:37:51 +0000 (09:37 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Wed, 18 Jul 2018 09:37:51 +0000 (09:37 +0000)
commitccdc7ebc1d99a3ccc34fe4a875b916bbb23b7298
tree3f73a10d47100884ab090f976c4b163d5bf877fa
parentc1090da8529d85e85ab8dbf141ebecd8926b00ab
[AArch64][SVE] Asm: Support for UDOT/SDOT instructions.

The signed/unsigned DOT instructions perform a dot-product on
quadtuplets from two source vectors and accumulate the result in
the destination register. The instructions come in two forms:

Vector form, e.g.
  sdot  z0.s, z1.b, z2.b     - signed dot product on four 8-bit quad-tuplets,
                               accumulating results in 32-bit elements.

  udot  z0.d, z1.h, z2.h     - unsigned dot product on four 16-bit quad-tuplets,
                               accumulating results in 64-bit elements.

Indexed form, e.g.
  sdot  z0.s, z1.b, z2.b[3]  - signed dot product on four 8-bit quad-tuplets
                               with specified quadtuplet from second
                               source vector, accumulating results in 32-bit
                               elements.
  udot  z0.d, z1.h, z2.h[1]  - dot product on four 16-bit quad-tuplets
                               with specified quadtuplet from second
                               source vector, accumulating results in 64-bit
                               elements.

llvm-svn: 337372
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/SVE/sdot-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/sdot.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/udot-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/udot.s [new file with mode: 0644]