OSDN Git Service

[InstCombine] Add range metadata to cttz/ctlz/ctpop intrinsic calls based on known...
authorCraig Topper <craig.topper@intel.com>
Wed, 21 Jun 2017 16:32:35 +0000 (16:32 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 21 Jun 2017 16:32:35 +0000 (16:32 +0000)
commitebc007dabbe95a2fa70de7eae6f72e8ff8efde72
tree576face533a909cd3b1d39f626adcddf59405497
parentf2fe26d60eb81a699f2d565e8baabcaf32f9c5ea
[InstCombine] Add range metadata to cttz/ctlz/ctpop intrinsic calls based on known bits

Summary:
I noticed that passing known bits across these intrinsics isn't great at capturing the information we really know. Turning known bits of the input into known bits of a count output isn't able to convey a lot of what we really know.

This patch adds range metadata to these intrinsics based on the known bits.

Currently the patch punts if we already have range metadata present.

Reviewers: spatel, RKSimon, davide, majnemer

Reviewed By: RKSimon

Subscribers: sanjoy, hfinkel, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305927 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineCalls.cpp
test/Transforms/InstCombine/ctpop.ll
test/Transforms/InstCombine/intrinsics.ll