summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/README.txt
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2006-09-22 05:01:56 +0000
committerNate Begeman <natebegeman@mac.com>2006-09-22 05:01:56 +0000
commitf42f133938545d4f5c249bcfef63db772ce8e942 (patch)
treedd748bea8d7e33b959461412c6e9a093aff9daf3 /lib/Target/PowerPC/README.txt
parentb71f6728eb4b3f0646da350d87eefc83ea35cf24 (diff)
downloadllvm-f42f133938545d4f5c249bcfef63db772ce8e942.tar.gz
llvm-f42f133938545d4f5c249bcfef63db772ce8e942.tar.bz2
llvm-f42f133938545d4f5c249bcfef63db772ce8e942.tar.xz
Fold AND and ROTL more often
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30577 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/README.txt')
-rw-r--r--lib/Target/PowerPC/README.txt34
1 files changed, 0 insertions, 34 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt
index 3ccb980a0d..82af6677fa 100644
--- a/lib/Target/PowerPC/README.txt
+++ b/lib/Target/PowerPC/README.txt
@@ -6,40 +6,6 @@ TODO:
===-------------------------------------------------------------------------===
-We only produce the rlwnm instruction for rotate instructions. We should
-at least match stuff like:
-
-unsigned rot_and(unsigned X, int Y) {
- unsigned T = (X << Y) | (X >> (32-Y));
- T &= 127;
- return T;
-}
-
-_foo3:
- rlwnm r2, r3, r4, 0, 31
- rlwinm r3, r2, 0, 25, 31
- blr
-
-... which is the basic pattern that should be written in the instr. It may
-also be useful for stuff like:
-
-long long foo2(long long X, int C) {
- return X << (C&~32);
-}
-
-which currently produces:
-
-_foo2:
- rlwinm r2, r5, 0, 27, 25
- subfic r5, r2, 32
- slw r3, r3, r2
- srw r5, r4, r5
- or r3, r3, r5
- slw r4, r4, r2
- blr
-
-===-------------------------------------------------------------------------===
-
Support 'update' load/store instructions. These are cracked on the G5, but are
still a codesize win.