diff options
author | Nate Begeman <natebegeman@mac.com> | 2006-09-22 05:01:56 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2006-09-22 05:01:56 +0000 |
commit | f42f133938545d4f5c249bcfef63db772ce8e942 (patch) | |
tree | dd748bea8d7e33b959461412c6e9a093aff9daf3 /lib/Target/PowerPC/README.txt | |
parent | b71f6728eb4b3f0646da350d87eefc83ea35cf24 (diff) | |
download | external_llvm-f42f133938545d4f5c249bcfef63db772ce8e942.zip external_llvm-f42f133938545d4f5c249bcfef63db772ce8e942.tar.gz external_llvm-f42f133938545d4f5c249bcfef63db772ce8e942.tar.bz2 |
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.txt | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt index 3ccb980..82af667 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. |