[clang] [llvm] [AArch64] Add intrinsics for 9.6 crypto instructions (PR #165545)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 7 06:52:22 PST 2025
================
@@ -6248,6 +6249,46 @@ void AArch64DAGToDAGISel::Select(SDNode *Node) {
AArch64::FMINNM_VG4_4Z4Z_S, AArch64::FMINNM_VG4_4Z4Z_D}))
SelectDestructiveMultiIntrinsic(Node, 4, true, Op);
return;
+ case Intrinsic::aarch64_sve_aese_laneq_x2:
+ SelectDestructiveMultiIntrinsic(Node, 2, false, AArch64::AESE_2ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesd_laneq_x2:
+ SelectDestructiveMultiIntrinsic(Node, 2, false, AArch64::AESD_2ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesemc_laneq_x2:
+ SelectDestructiveMultiIntrinsic(Node, 2, false, AArch64::AESEMC_2ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesdimc_laneq_x2:
+ SelectDestructiveMultiIntrinsic(Node, 2, false, AArch64::AESDIMC_2ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aese_laneq_x4:
+ SelectDestructiveMultiIntrinsic(Node, 4, false, AArch64::AESE_4ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesd_laneq_x4:
+ SelectDestructiveMultiIntrinsic(Node, 4, false, AArch64::AESD_4ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesemc_laneq_x4:
+ SelectDestructiveMultiIntrinsic(Node, 4, false, AArch64::AESEMC_4ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_aesdimc_laneq_x4:
+ SelectDestructiveMultiIntrinsic(Node, 4, false, AArch64::AESDIMC_4ZZI_B);
+ return;
+ case Intrinsic::aarch64_sve_pmlal:
+ SelectDestructiveMultiIntrinsic(Node, 2, false, AArch64::PMLAL_2ZZZ_Q);
+ return;
+ case Intrinsic::aarch64_sve_pmull: {
+ SDLoc DL(Node);
----------------
Lukacma wrote:
I couldn't find a function which would do what I need here. SelectCVTIntrinsics wouldn't work as it create Ztuple, which is not correct here
https://github.com/llvm/llvm-project/pull/165545
More information about the llvm-commits
mailing list