[llvm] [AArch64][SDAG] Generate TBL for shuffles in single block loops. (PR #227593)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 3 23:49:11 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();
----------------
davemgreen wrote:
There is already a use of the Block inside shouldOptForSize which ends up here: https://github.com/llvm/llvm-project/blob/e3afe37ec59c4c5f689e2c92bd0b6f16cabf6fbf/llvm/lib/Transforms/Utils/SizeOpts.cpp#L72
So I assumed it was OK in practice from SDAG.
https://github.com/llvm/llvm-project/pull/227593
More information about the llvm-commits
mailing list