Issue 152237
Summary Missed optimization: fold (n*x-n)/n to x-1
Labels new issue
Assignees
Reporter zxt5
    ```
define i8 @src(i8 %0) {
  %2 = mul nsw i8 %0, 40
  %3 = add nsw i8 %2, -40
  %4 = udiv exact i8 %3, 40
  ret i8 %4
}


define i8 @tgt(i8 %0) {
  %2 = sub nsw i8 %0, 1
  ret i8 %2
}
```

Alive2: https://alive2.llvm.org/ce/z/X3YdJu
Godbolt: https://godbolt.org/z/db1WvTGjc

Found this pattern in https://raw.githubusercontent.com/dtcxzyw/llvm-opt-benchmark/refs/heads/main/bench/llvm/optimized/AsmParser.ll#:~:text=10%20to%20i64-,%25,-.idx%20%3D%20mul%20nuw
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to