[AArch64][SVE2] Add the SVE2.1 while & pext predicate pair instructions
authorDavid Sherwood <david.sherwood@arm.com>
Wed, 26 Oct 2022 10:40:02 +0000 (10:40 +0000)
committerDavid Sherwood <david.sherwood@arm.com>
Wed, 2 Nov 2022 08:39:03 +0000 (08:39 +0000)
commitbe369ea31b98f23c7d8e7a83ea4a1b4cf76b544f
tree5369e96bb9014d14aa7f62a9d4a649885183aaba
parent870fbf8e300f3012470593ac087219a04d52857f
[AArch64][SVE2] Add the SVE2.1 while & pext predicate pair instructions

This patch adds the assembly/disassembly for the following
predicate pair instructions:

pext:    Set pair of predicates from predicate-as-counter
whilelt: While incrementing signed scalar less than scalar
whilele: While incrementing signed scalar less than or equal to scalar
whilegt: While incrementing signed scalar greater than scalar
whilege: While incrementing signed scalar greater than or equal to scalar
whilelo: While incrementing unsigned scalar lower than scalar
whilels: While incrementing unsigned scalar lower or same as scalar
whilehs: While decrementing unsigned scalar higher or same as scalar
whilehi: While decrementing unsigned scalar higher than scalar

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09

Differential Revision: https://reviews.llvm.org/D136759
27 files changed:
llvm/lib/Target/AArch64/AArch64RegisterInfo.td
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-unwind-inline-asm.ll
llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
llvm/test/MC/AArch64/SVE2p1/pext-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/pext.s
llvm/test/MC/AArch64/SVE2p1/whilege-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilege.s
llvm/test/MC/AArch64/SVE2p1/whilegt-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilegt.s
llvm/test/MC/AArch64/SVE2p1/whilehi-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilehi.s
llvm/test/MC/AArch64/SVE2p1/whilehs-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilehs.s
llvm/test/MC/AArch64/SVE2p1/whilele-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilele.s
llvm/test/MC/AArch64/SVE2p1/whilelo-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilelo.s
llvm/test/MC/AArch64/SVE2p1/whilels-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilels.s
llvm/test/MC/AArch64/SVE2p1/whilelt-diagnostics.s
llvm/test/MC/AArch64/SVE2p1/whilelt.s