[llvm] [DAG] Recognise AVGFLOOR (((A >> 1) + (B >> 1)) + (A & B & 1)) patterns (PR #169644)

Mikael Holmen via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 11 05:46:00 PST 2025


mikaelholmen wrote:

I've seen errors like
```
LLVM ERROR: SmallVector unable to grow. Requested capacity (4294967296) is larger than maximum value for size type (4294967295)
```
when compiling for my out of tree target with this patch. When it fails there are a lot of
```
#117 0x0000560facf1edc5 llvm::SDPatternMatch::ReassociatableOpc_match<llvm::SDPatternMatch::BinaryOpc_match<llvm::SDPatternMatch::Value_bind, llvm::SDPatternMatch::Ones_match, false, false>, llvm::SDPatternMatch::BinaryOpc_match<llvm::SDPatternMatch::Value_bind, llvm::SDPatternMatch::Ones_match, false, false>, llvm::SDPatternMatch::ReassociatableOpc_match<llvm::SDPatternMatch::DeferredValue_match, llvm::SDPatternMatch::DeferredValue_match, llvm::SDPatternMatch::Ones_match>>::collectLeaves(llvm::SDValue, llvm::SmallVector<llvm::SDValue, 3u>&) DAGCombiner.cpp:0:0
#118 0x0000560facf1edc5 llvm::SDPatternMatch::ReassociatableOpc_match<llvm::SDPatternMatch::BinaryOpc_match<llvm::SDPatternMatch::Value_bind, llvm::SDPatternMatch::Ones_match, false, false>, llvm::SDPatternMatch::BinaryOpc_match<llvm::SDPatternMatch::Value_bind, llvm::SDPatternMatch::Ones_match, false, false>, llvm::SDPatternMatch::ReassociatableOpc_match<llvm::SDPatternMatch::DeferredValue_match, llvm::SDPatternMatch::DeferredValue_match, llvm::SDPatternMatch::Ones_match>>::collectLeaves(llvm::SDValue, llvm::SmallVector<llvm::SDValue, 3u>&) DAGCombiner.cpp:0:0
```
calls on the stack.
Unfortunately I don't have a reproducer to share (at the moment at least).

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


More information about the llvm-commits mailing list