[PATCH] Fix PR22222
Sanjoy Das
sanjoy at playingwithpointers.com
Wed Jan 14 18:15:32 PST 2015
In http://reviews.llvm.org/D6979#108906, @majnemer wrote:
> LGTM.
>
> Out of curiosity, why isn't this implemented like the code here:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp?revision=222213&view=markup#l1733
In retrospect, that would have been the right way to do it. Directly checking zext(A + B) == zext(A) + zext(B) does not catch `test.unsigned.add.0` (in the test file), but I think that is fixable.
Moreover, the approach you pointed out can be easily generalized to subtraction. I don't think you can easily generalize it to multiplication (since checking for `BitWidth + 1` may not be sufficient in that case); but we're not handling multiplication anyway.
I'll try to implement the approach `LinearFunctionTestReplace` and send in a patch for review sometime this week.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D6979
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list