From: Chris Lattner Date: Thu, 14 Sep 2006 20:56:30 +0000 (+0000) Subject: add a note X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f0613e1e7cc8aae41350fb0b983ce5b43115b93a;p=oota-llvm.git add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30377 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt index 2c99e02e4e2..b0840a5e501 100644 --- a/lib/Target/PowerPC/README.txt +++ b/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 +