[all-commits] [llvm/llvm-project] 7a6d6f: [InstCombine] improve folds for icmp with multiply...
RotateRight via All-commits
all-commits at lists.llvm.org
Mon Sep 7 09:43:12 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 7a6d6f0f7046f6ebcbf06eaf8f996d991a90e440
https://github.com/llvm/llvm-project/commit/7a6d6f0f7046f6ebcbf06eaf8f996d991a90e440
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2020-09-07 (Mon, 07 Sep 2020)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/icmp-mul.ll
Log Message:
-----------
[InstCombine] improve folds for icmp with multiply operands (PR47432)
Check for no overflow along with an odd constant before
we lose information by converting to bitwise logic.
https://rise4fun.com/Alive/2Xl
Pre: C1 != 0
%mx = mul nsw i8 %x, C1
%my = mul nsw i8 %y, C1
%r = icmp eq i8 %mx, %my
=>
%r = icmp eq i8 %x, %y
Name: nuw ne
Pre: C1 != 0
%mx = mul nuw i8 %x, C1
%my = mul nuw i8 %y, C1
%r = icmp ne i8 %mx, %my
=>
%r = icmp ne i8 %x, %y
Name: odd ne
Pre: C1 % 2 != 0
%mx = mul i8 %x, C1
%my = mul i8 %y, C1
%r = icmp ne i8 %mx, %my
=>
%r = icmp ne i8 %x, %y
More information about the All-commits
mailing list