[llvm] [ISel] Introduce `llvm.pext` and `llvm.pdep` intrinsics (PR #200570)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 1 23:00:44 PDT 2026


================
@@ -2108,6 +2108,19 @@ AArch64TargetLowering::AArch64TargetLowering(const TargetMachine &TM,
       }
     }
 
+    // Map generic PEXT/PDEP to SVE2 bitperm BEXT/BDEP instructions.
+    if (Subtarget->hasSVEBitPerm() &&
+        (Subtarget->isSVEAvailable() ||
+         (Subtarget->isSVEorStreamingSVEAvailable() &&
+          Subtarget->hasSSVE_BitPerm()))) {
+      for (auto VT : {MVT::nxv16i8, MVT::nxv8i16, MVT::nxv4i32, MVT::nxv2i64}) {
+        setOperationAction(ISD::PEXT, VT, Custom);
+        setOperationAction(ISD::PDEP, VT, Custom);
----------------
topperc wrote:

```suggestion
        setOperationAction({ISD::PEXT, ISD::PDEP}, VT, Custom);
```

https://github.com/llvm/llvm-project/pull/200570


More information about the llvm-commits mailing list