Issue 54191
Summary [scev] Loop unrolling blocked by finite loop handling of nonstrict inequalities
Labels
Assignees
Reporter mtrofin
    [scev-test.zip](https://github.com/llvm/llvm-project/files/8182815/scev-test.zip)

See https://reviews.llvm.org/D118090

To repro, unzip the attachment, then:

```
opt -mtriple=x86_64-linux -mattr=+64bit,+sse3,+ssse3 -passes="require<scalar-evolution>,loop-unroll" /tmp/good-test.ll -scalar-evolution-finite-loop=0 -S -o /tmp/no.ll 
opt -mtriple=x86_64-linux -mattr=+64bit,+sse3,+ssse3 -passes="require<scalar-evolution>,loop-unroll" /tmp/good-test.ll -scalar-evolution-finite-loop=1 -S -o /tmp/yes.ll 

diff /tmp/no.ll /tmp/yes.ll
```

This is causing ~20% regression in an eigen benchmark. The .ll is extracted from there - it could have probably be further reduced, but I wasn't successful.

The interesting loop is the one at block `863`. See `SCEVExpander::isHighCostExpansion`
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to