[llvm] [InstCombine] Implemented missed optimization in muldivrem (PR #140916)
Kshitij Paranjape via llvm-commits
llvm-commits at lists.llvm.org
Tue May 27 10:08:54 PDT 2025
kshitijvp wrote:
Example:
`; Function Attrs: noinline nounwind uwtable
define dso_local i64 @func1b(i64 noundef %0) {
%2 = alloca i64, align 8
store i64 %0, ptr %2, align 8
%3 = load i64, ptr %2, align 8
%4 = urem i64 %3, 84
%5 = udiv i64 %4, 7
ret i64 %5
}`
The optimization is not working properly on the above code.
It is optimizing it to:
`; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
define dso_local i64 @func1b(i64 noundef %0) local_unnamed_addr #0 {
%2 = urem i64 %0, 84
%.lhs.trunc = trunc i64 %2 to i8
%3 = udiv i8 %.lhs.trunc, 7
%.zext = zext nneg i8 %3 to i64
ret i64 %.zext
}`
https://github.com/llvm/llvm-project/pull/140916
More information about the llvm-commits
mailing list