1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib
Evan Cheng 40adfc21f6 Teach dag combine to match halfword byteswap patterns.
1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)
   => (bswap x) >> 16
2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8))
   => (rotl (bswap x) 16)

This allows us to eliminate most of the def : Pat patterns for ARM rev16
revsh instructions. It catches many more cases for ARM and x86.

rdar://9609108

llvm-svn: 133503
2011-06-21 06:01:08 +00:00
..
Analysis Revamp the "ConstantStruct::get" methods. Previously, these were scattered 2011-06-20 04:01:31 +00:00
Archive
AsmParser Revamp the "ConstantStruct::get" methods. Previously, these were scattered 2011-06-20 04:01:31 +00:00
Bitcode Make better use of the PHINode API. 2011-06-20 14:18:48 +00:00
CodeGen Teach dag combine to match halfword byteswap patterns. 2011-06-21 06:01:08 +00:00
CompilerDriver
ExecutionEngine eliminate the Type::getDescription() method, using "<<" instead. This 2011-06-18 21:18:23 +00:00
Linker
MC Remove the subclassing. This will be moved to the ASM printer. 2011-06-20 22:12:24 +00:00
Object Revert r132910 and r132909 on behalf of Michael. They didn't build with clang. 2011-06-13 12:56:51 +00:00
Support add option for literal formatting to APInt::toString() 2011-06-15 00:51:55 +00:00
Target Teach dag combine to match halfword byteswap patterns. 2011-06-21 06:01:08 +00:00
Transforms indvars -disable-iv-rewrite: Adds support for eliminating identity 2011-06-21 03:22:38 +00:00
VMCore Revert r133435 and r133449 to appease buildbots. 2011-06-21 02:09:03 +00:00
CMakeLists.txt
Makefile