[llvm] [NVPTX] Use PRMT more widely, and improve folding around this instruction (PR #148261)

Jordan Rupprecht via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 21 07:39:02 PDT 2025


rupprecht wrote:

FYI, we hit a test failure w/ this commit:

```
llvm/lib/Support/APInt.cpp:484 in APInt llvm::APInt::extractBits(unsigned int, unsigned int) const: bitPosition < BitWidth && (numBits + bitPosition) <= BitWidth && "Illegal bit extraction"
*** Check failure stack trace: ***
    @     0x558d09e29341  llvm::APInt::extractBits()
    @     0x558d05889fa8  llvm::NVPTXTargetLowering::computeKnownBitsForTargetNode()
    @     0x558d063474e7  llvm::SelectionDAG::computeKnownBits()
    @     0x558d0634977f  llvm::SelectionDAG::computeKnownBits()
    @     0x558d06344604  llvm::SelectionDAG::computeKnownBits()
    @     0x558d05889cdd  llvm::NVPTXTargetLowering::computeKnownBitsForTargetNode()
    @     0x558d06441f42  llvm::TargetLowering::SimplifyDemandedBitsForTargetNode()
    @     0x558d06434315  llvm::TargetLowering::SimplifyDemandedBits()
    @     0x558d0642fdb8  llvm::TargetLowering::SimplifyDemandedBits()
    @     0x558d061a5844  (anonymous namespace)::DAGCombiner::SimplifyDemandedBits()
    @     0x558d061a574e  (anonymous namespace)::DAGCombiner::SimplifyDemandedBits()
    @     0x558d061a2a2a  (anonymous namespace)::DAGCombiner::SimplifyDemandedBits()
    @     0x558d06163a42  (anonymous namespace)::DAGCombiner::visitTRUNCATE()
    @     0x558d06136a55  (anonymous namespace)::DAGCombiner::combine()
    @     0x558d06134af4  llvm::SelectionDAG::Combine()
    @     0x558d064088a6  llvm::SelectionDAGISel::CodeGenAndEmitDAG()
    @     0x558d064067c9  llvm::SelectionDAGISel::SelectAllBasicBlocks()
    @     0x558d06403535  llvm::SelectionDAGISel::runOnMachineFunction()
    @     0x558d058617ec  llvm::NVPTXDAGToDAGISel::runOnMachineFunction()
    @     0x558d064006a1  llvm::SelectionDAGISelLegacy::runOnMachineFunction()
    @     0x558d05f02057  llvm::MachineFunctionPass::runOnFunction()
    @     0x558d0974e5c2  llvm::FPPassManager::runOnFunction()
    @     0x558d09755a32  llvm::FPPassManager::runOnModule()
    @     0x558d0974ed78  llvm::legacy::PassManagerImpl::run()
    @     0x7fd9385b6c26  translateLLVMIRToASM()
```

The failing test is from Triton: https://github.com/triton-lang/triton/blob/main/python/test/unit/language/test_core.py

@Artem-B suggested that we should revert this to get trunk green again and re-land later w/ a fix. If there are no objections, I'll revert in a little bit.

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


More information about the llvm-commits mailing list