summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/select-ctlz-to-cttz.ll
Commit message (Collapse)AuthorAgeFilesLines
* [InstCombine] Fold select with ctlz to cttzDavid Bolvansky2019-08-271-38/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Handle pattern [0]: int ctz(unsigned int a) { int c = __clz(a & -a); return a ? 31 - c : c; } In reality, the compiler can generate much better code for cttz, so fold away this pattern. https://godbolt.org/z/c5kPtV [0] https://community.arm.com/community-help/f/discussions/2114/count-trailing-zeros Reviewers: spatel, nikic, lebedev.ri, dmgreen, hfinkel Reviewed By: hfinkel Subscribers: hfinkel, javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66308 llvm-svn: 370037
* [NFC] Added tests for 'select with ctlz to cttz' foldDavid Bolvansky2019-08-151-0/+249
llvm-svn: 369032
OpenPOWER on IntegriCloud