diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-09-14 20:56:30 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-09-14 20:56:30 +0000 |
| commit | 2aa98e0363537ba97e49440a63f7f12a7fc40017 (patch) | |
| tree | cb423329073c38a9199b94f2dffa90f10232f2a7 /llvm/lib | |
| parent | 97614c86ce7479d9d7d866bbc0b8699794683f44 (diff) | |
| download | bcm5719-llvm-2aa98e0363537ba97e49440a63f7f12a7fc40017.tar.gz bcm5719-llvm-2aa98e0363537ba97e49440a63f7f12a7fc40017.zip | |
add a note
llvm-svn: 30377
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/PowerPC/README.txt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/README.txt b/llvm/lib/Target/PowerPC/README.txt index 2c99e02e4e2..b0840a5e501 100644 --- a/llvm/lib/Target/PowerPC/README.txt +++ b/llvm/lib/Target/PowerPC/README.txt @@ -539,3 +539,28 @@ be folded together. unsigned short G; void foo(unsigned long H) { G = H; } +===-------------------------------------------------------------------------=== + +We compile: + +unsigned test6(unsigned x) { + return ((x & 0x00FF0000) >> 16) | ((x & 0x000000FF) << 16); +} + +into: + +_test6: + lis r2, 255 + rlwinm r3, r3, 16, 0, 31 + ori r2, r2, 255 + and r3, r3, r2 + blr + +GCC gets it down to: + +_test6: + rlwinm r0,r3,16,8,15 + rlwinm r3,r3,16,24,31 + or r3,r3,r0 + blr + |

