[AArch64][SVE] Asm: Support for bit/byte reverse operations.
authorSander de Smalen <sander.desmalen@arm.com>
Fri, 20 Jul 2018 09:00:44 +0000 (09:00 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Fri, 20 Jul 2018 09:00:44 +0000 (09:00 +0000)
commit33f588acb9b1203451de4948ff6f0e8ae58c5516
tree4c5d831391307d5afe80852be332c7e38cd85e71
parent3ed7f81ce1fd45513dc1727a7e04d79472606188
[AArch64][SVE] Asm: Support for bit/byte reverse operations.

This patch adds the following instructions:

  RBIT      reverse bits within each active elemnt (predicated), e.g.
                rbit z0.d, p0/m, z1.d

            for 8, 16, 32 and 64 bit elements.

  REV       reverse order of elements in data/predicate vector
            (unpredicated), e.g.
                rev z0.d, z1.d
                rev p0.d, p1.d

            for 8, 16, 32 and 64 bit elements.

  REVB      reverse order of bytes within each active element, e.g.
                revb z0.d, p0/m, z1.d

            for 16, 32 and 64 bit elements.

  REVH      reverse order of 16-bit half-words within each active
            element, e.g.
                revh z0.d, p0/m, z1.d

            for 32 and 64 bit elements.

  REVW      reverse order of 32-bit words within each active element,
            e.g.
                revw z0.d, p0/m, z1.d

            for 64 bit elements.

llvm-svn: 337534
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/MC/AArch64/SVE/rbit-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/rbit.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/rev.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revb-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revb.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revh-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revh.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revw-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SVE/revw.s [new file with mode: 0644]