summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-09-14 20:56:30 +0000
committerChris Lattner <sabre@nondot.org>2006-09-14 20:56:30 +0000
commit2aa98e0363537ba97e49440a63f7f12a7fc40017 (patch)
treecb423329073c38a9199b94f2dffa90f10232f2a7 /llvm/lib
parent97614c86ce7479d9d7d866bbc0b8699794683f44 (diff)
downloadbcm5719-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.txt25
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
+
OpenPOWER on IntegriCloud