summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2017-05-01 16:08:06 +0000
committerCraig Topper <craig.topper@gmail.com>2017-05-01 16:08:06 +0000
commit6b1b630a984bbb3c5f1fcc01d02770d98ebb6d6a (patch)
tree178c130de2520399961a2acc1b321a74bbdc6672 /clang/lib/CodeGen/CodeGenModule.cpp
parent3b243608f5dcb1aaaab0ae6aaeecd32dec17fc55 (diff)
downloadbcm5719-llvm-6b1b630a984bbb3c5f1fcc01d02770d98ebb6d6a.tar.gz
bcm5719-llvm-6b1b630a984bbb3c5f1fcc01d02770d98ebb6d6a.zip
[SelectionDAG] Use known ones to provide a better bound for the known zeros for CTTZ/CTLZ operations.
This is the SelectionDAG version of D32521. If know where at least one 1 is located in the input to these intrinsics we can place an upper bound on the number of bits needed to represent the count and thus increase the number of known zeros in the output. I think we can also refine this further for CTTZ_UNDEF/CTLZ_UNDEF by assuming that the answer will never be BitWidth. I've left this out for now because it caused other test failures across multiple targets. Usually because of turning ADD into OR based on this new information. I'll fix CTPOP in a future patch. Differential Revision: https://reviews.llvm.org/D32692 llvm-svn: 301806
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud