summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/README.txt
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-07 17:53:10 +0000
committerChris Lattner <sabre@nondot.org>2010-01-07 17:53:10 +0000
commit9e4e45a3b669639f1958015f41486e5bc9c7074a (patch)
tree44ae7d938310a019d8ac651e89b5f494ca020fca /llvm/lib/Target/PowerPC/README.txt
parent2b45998b7bab08280cc53bb9ddf83bcb4765fe2a (diff)
downloadbcm5719-llvm-9e4e45a3b669639f1958015f41486e5bc9c7074a.tar.gz
bcm5719-llvm-9e4e45a3b669639f1958015f41486e5bc9c7074a.zip
constant materialization could be improved.
llvm-svn: 92921
Diffstat (limited to 'llvm/lib/Target/PowerPC/README.txt')
-rw-r--r--llvm/lib/Target/PowerPC/README.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/README.txt b/llvm/lib/Target/PowerPC/README.txt
index f5e50fc808a..060d6a5c5c2 100644
--- a/llvm/lib/Target/PowerPC/README.txt
+++ b/llvm/lib/Target/PowerPC/README.txt
@@ -7,6 +7,39 @@ TODO:
===-------------------------------------------------------------------------===
+On PPC64, this:
+
+long f2 (long x) { return 0xfffffff000000000UL; }
+long f3 (long x) { return 0x1ffffffffUL; }
+
+could compile into:
+
+_f2:
+ li r3,-1
+ rldicr r3,r3,0,27
+ blr
+_f3:
+ li r3,-1
+ rldicl r3,r3,0,31
+ blr
+
+we produce:
+
+_f2:
+ lis r2, 4095
+ ori r2, r2, 65535
+ sldi r3, r2, 36
+ blr
+_f3:
+ li r2, 1
+ sldi r2, r2, 32
+ oris r2, r2, 65535
+ ori r3, r2, 65535
+ blr
+
+
+===-------------------------------------------------------------------------===
+
Support 'update' load/store instructions. These are cracked on the G5, but are
still a codesize win.
OpenPOWER on IntegriCloud