[llvm] [AArch64][SDAG] Generate TBL for shuffles in single block loops. (PR #227593)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 4 13:47:47 PDT 2026


================
@@ -16063,6 +16063,14 @@ SDValue AArch64TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op,
                     DAG.getNode(AArch64ISD::NVCAST, DL, BSVT, V1)));
   }
 
+  auto preferTBLToMultiInstrShuffle = [&]() {
+    if (DAG.shouldOptForSize())
+      return false;
+    // Look for a simple single block loop.
+    const BasicBlock *Block = DAG.getBasicBlock();
----------------
efriedma-quic wrote:

It's probably fine, but worth adding an assertion somewhere so we don't get a null pointer dereference in a weird place.

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


More information about the llvm-commits mailing list