diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-07-17 03:30:54 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-07-17 03:30:54 +0000 |
commit | 5423856e44a7e4b173af211b0fb0675c44945a58 (patch) | |
tree | bac56b6c0151d1328703beccdcf5e0b34618d6a6 /lib/Target/ARM/README.txt | |
parent | 879259faa3b24015949f3a3614ce348a7c20e422 (diff) | |
download | llvm-5423856e44a7e4b173af211b0fb0675c44945a58.tar.gz llvm-5423856e44a7e4b173af211b0fb0675c44945a58.tar.bz2 llvm-5423856e44a7e4b173af211b0fb0675c44945a58.tar.xz |
Add combiner patterns to more effectively utilize the BFI (bitfield insert)
instruction for non-constant operands. This includes the case referenced
in the README.txt regarding a bitfield copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108608 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/README.txt')
-rw-r--r-- | lib/Target/ARM/README.txt | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt index 0cb8ff0118..ba4e5da5a0 100644 --- a/lib/Target/ARM/README.txt +++ b/lib/Target/ARM/README.txt @@ -611,27 +611,6 @@ constant which was already loaded). Not sure what's necessary to do that. //===---------------------------------------------------------------------===// -Given the following on ARMv7: -int test1(int A, int B) { - return (A&-8388481)|(B&8388480); -} - -We currently generate: - bfc r0, #7, #16 - movw r2, #:lower16:8388480 - movt r2, #:upper16:8388480 - and r1, r1, r2 - orr r0, r1, r0 - bx lr - -The following is much shorter: - lsr r1, r1, #7 - bfi r0, r1, #7, #16 - bx lr - - -//===---------------------------------------------------------------------===// - The code generated for bswap on armv4/5 (CPUs without rev) is less than ideal: int a(int x) { return __builtin_bswap32(x); } |