[AArch64][SVE2p1] Add SVE2.1 while (predicate-pair) intrinsics
authorDavid Sherwood <david.sherwood@arm.com>
Tue, 17 Jan 2023 15:16:25 +0000 (15:16 +0000)
committerDavid Sherwood <david.sherwood@arm.com>
Thu, 19 Jan 2023 09:32:20 +0000 (09:32 +0000)
commit871815e062a9e1d143f29333e6129f1cad0f83bb
treeaf62bde8e59150af830d95d63ba133860400f91d
parent921c6f070714233ab707808354520b3f6e0ff4d6
[AArch64][SVE2p1] Add SVE2.1 while (predicate-pair) intrinsics

Adds intrinsics for the following instructions:

* WHILEGE (predicate pair)
* WHILEGT (predicate pair)
* WHILEHI (predicate pair)
* WHILEHS (predicate pair)
* WHILELE (predicate pair)
* WHILELO (predicate pair)
* WHILELS (predicate pair)
* WHILELT (predicate pair)

I've added an opcode selector called SelectOpcodeFromVT to
AArch64ISelDAGToDAG.cpp that we will extend in future to
select opcodes from different MVTs. For now, the only use is
for selecting predicate types.

NOTE: These intrinsics are still in development and are subject
to future changes.

Differential Revision: https://reviews.llvm.org/D141936
llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve2p1-intrinsics-while-pp.ll [new file with mode: 0644]