[InstCombine] Use less bitwise operations to handle Instruction::SExt in SimplifyDema...
authorCraig Topper <craig.topper@gmail.com>
Wed, 24 May 2017 17:33:30 +0000 (17:33 +0000)
committerCraig Topper <craig.topper@gmail.com>
Wed, 24 May 2017 17:33:30 +0000 (17:33 +0000)
commit1c660dbea67ee9b4c0f3df2e44463186d0308d8a
tree7676e61271d4caff98c426f3ac17da08bf30c067
parent6a0005d1b449876348c7cc721c40fad3a967b862
[InstCombine] Use less bitwise operations to handle Instruction::SExt in SimplifyDemandedUseBits. Other improvements.

The current code created a NewBits mask and used it as a mask several times. One of them just before a call to trunc making it unnecessary. A call to getActiveBits can get us the same information for the case. We also ORed with this mask later when we should have just sign extended the known bits.

We also called trunc on the guaranteed to be zero KnownZeros/Ones masks entering this code. Creating appropriately sized temporary APInts is probably better.

Differential Revision: https://reviews.llvm.org/D32098

llvm-svn: 303779
llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp