[llvm] [X86] combineINSERT_SUBVECTOR - fold insert_subvector(base,extract_subvector(broadcast)) -> blend shuffle(base,broadcast) (PR #133083)
Jordan Rupprecht via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 28 12:19:39 PDT 2025
rupprecht wrote:
Haven't figured out how to get the IR repro yet, but it looks like this non-deterministically hitting an infinite loop under `llvm::SelectionDAG::Combine`. Sometimes the repro finishes in 2s, sometimes it gets kill w/ a test timeout at 30s.
Sample thread dumps from three separate cases:
```
(anonymous namespace)::DAGCombiner::visitEXTRACT_SUBVECTOR()
(anonymous namespace)::DAGCombiner::combine()
llvm::SelectionDAG::Combine()
llvm::SelectionDAGISel::CodeGenAndEmitDAG()
llvm::SelectionDAGISel::SelectAllBasicBlocks()
llvm::SelectionDAGISel::runOnMachineFunction()
llvm::SelectionDAGISelLegacy::runOnMachineFunction()
llvm::MachineFunctionPass::runOnFunction()
llvm::APInt::isAllOnes()
llvm::TargetLowering::SimplifyDemandedVectorElts()
(anonymous namespace)::DAGCombiner::SimplifyDemandedVectorElts()
(anonymous namespace)::DAGCombiner::SimplifyDemandedVectorElts()
(anonymous namespace)::DAGCombiner::visitEXTRACT_SUBVECTOR()
(anonymous namespace)::DAGCombiner::combine()
llvm::SelectionDAG::Combine()
llvm::SelectionDAGISel::CodeGenAndEmitDAG()
llvm::SelectionDAGISel::SelectAllBasicBlocks()
llvm::SelectionDAGISel::runOnMachineFunction()
llvm::SelectionDAGISelLegacy::runOnMachineFunction()
llvm::MachineFunctionPass::runOnFunction()
(anonymous namespace)::SelectionDAGLegalize::LegalizeOp()
llvm::SelectionDAG::LegalizeOp()
llvm::SelectionDAG::Combine()
llvm::SelectionDAGISel::CodeGenAndEmitDAG()
llvm::SelectionDAGISel::SelectAllBasicBlocks()
llvm::SelectionDAGISel::runOnMachineFunction()
llvm::SelectionDAGISelLegacy::runOnMachineFunction()
llvm::MachineFunctionPass::runOnFunction()
```
https://github.com/llvm/llvm-project/pull/133083
More information about the llvm-commits
mailing list