llvm-project/llvm/lib/Transforms
Charlie Turner 2720593ab4 [InstCombine] Recognize another bswap idiom.
Summary:
The byte-swap recognizer can now notice that this

```
uint32_t bswap(uint32_t x)
{
  x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16;
  x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8;
  return x;
}
```
    
is a bswap. Fixes PR23863.

Reviewers: nlewycky, hfinkel, hans, jmolloy, rengolin

Subscribers: majnemer, rengolin, llvm-commits

Differential Revision: http://reviews.llvm.org/D12637

llvm-svn: 248482
2015-09-24 10:24:58 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IPO Add CFG Simplification pass after Loop Unswitching. 2015-09-24 03:50:17 +00:00
InstCombine [InstCombine] Recognize another bswap idiom. 2015-09-24 10:24:58 +00:00
Instrumentation [safestack] Fix compiler crash in the presence of stack restores. 2015-09-24 01:23:51 +00:00
ObjCARC [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
Scalar Swap loop invariant GEP with loop variant GEP to allow more LICM. 2015-09-23 19:25:30 +00:00
Utils [Unroll] When completely unrolling the loop, replace conditinal branches with unconditional. 2015-09-23 23:12:43 +00:00
Vectorize [SCEV] Introduce ScalarEvolution::getOne and getZero. 2015-09-23 01:59:04 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile