[InstSimplify] Handle some overflow intrinsics in InstSimplify
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 22 May 2015 03:56:46 +0000 (03:56 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 22 May 2015 03:56:46 +0000 (03:56 +0000)
commitfe0d65bcc65bb4017ee51bb5911139cc66ea06c0
treedf7c69f91bc263c24b0a7a343040fe238694f7e8
parentedcdc5cb6a920a330a7fbdc3729bb13f2a509416
[InstSimplify] Handle some overflow intrinsics in InstSimplify

This change does a few things:
- Move some InstCombine transforms to InstSimplify
- Run SimplifyCall from within InstCombine::visitCallInst
- Teach InstSimplify to fold [us]mul_with_overflow(X, undef) to 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237995 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/InstructionSimplify.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstCombineCompares.cpp
test/Transforms/InstCombine/intrinsics.ll
test/Transforms/InstSimplify/call.ll