Optimize icmp involving addition better
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 11 Apr 2013 20:05:46 +0000 (20:05 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 11 Apr 2013 20:05:46 +0000 (20:05 +0000)
commitb81cd63c4b7d9a352eab7ccf8d95962999d320a9
tree00cc24f50e3cfb6375386083392b270795e2f2ef
parenta16fa808d35d2c24dd212ce88b810518074cf8bb
Optimize icmp involving addition better

Allows LLVM to optimize sequences like the following:

%add = add nsw i32 %x, 1
%cmp = icmp sgt i32 %add, %y

into:

%cmp = icmp sge i32 %x, %y

as well as:

%add1 = add nsw i32 %x, 20
%add2 = add nsw i32 %y, 57
%cmp = icmp sge i32 %add1, %add2

into:

%add = add nsw i32 %y, 37
%cmp = icmp sle i32 %cmp, %x

llvm-svn: 179316
llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
llvm/test/Transforms/InstCombine/icmp.ll