diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-25 15:36:57 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-25 15:36:57 +0000 |
| commit | 327ec24b4d9f6cbbc5be60e53157a809259d0ab1 (patch) | |
| tree | d3c38d97fb758eeb1c02ab737c49b6b1c7b8ca37 /llvm/lib/Target | |
| parent | 860323fd4fff4b6feb0fdc0038c5c74936e68ce4 (diff) | |
| download | bcm5719-llvm-327ec24b4d9f6cbbc5be60e53157a809259d0ab1.tar.gz bcm5719-llvm-327ec24b4d9f6cbbc5be60e53157a809259d0ab1.zip | |
[Hexagon] Pattern match a CTZ loop into a call to countTrailingZeros.
No functional change intended.
llvm-svn: 233192
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index 5bb4c095cf0..aaccac8b57a 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -1137,10 +1137,7 @@ SDNode *HexagonDAGToDAGISel::SelectBitOp(SDNode *N) { return SelectCode(N); // Get the bit position. - while (!(Val & 1)) { - Val >>= 1; - ++bitpos; - } + bitpos = countTrailingZeros(uint64_t(Val)); } else { // For fabs and fneg, it's always the 31st bit. bitpos = 31; |

