aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-21 06:04:07 +0000
committerChris Lattner <sabre@nondot.org>2009-09-21 06:04:07 +0000
commitfaa6adf67c29e51d819e8ed9d2de0176cb0ab6fe (patch)
tree6ebac7cb0f399c85fe667fa67591a206f5bad5d6
parent003de66227d235a9ca7373d9cb2c0b1b6ae5b81a (diff)
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82442 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/README.txt15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 8ff08fbf03..89ea9d0afc 100644
--- a/lib/Target/README.txt
+++ b/lib/Target/README.txt
@@ -220,7 +220,20 @@ so cool to turn it into something like:
... which would only do one 32-bit XOR per loop iteration instead of two.
It would also be nice to recognize the reg->size doesn't alias reg->node[i], but
-alas...
+alas.
+
+//===---------------------------------------------------------------------===//
+
+This should be optimized to one 'and' and one 'or', from PR4216:
+
+define i32 @test_bitfield(i32 %bf.prev.low) nounwind ssp {
+entry:
+ %bf.prev.lo.cleared10 = or i32 %bf.prev.low, 32962 ; <i32> [#uses=1]
+ %0 = and i32 %bf.prev.low, -65536 ; <i32> [#uses=1]
+ %1 = and i32 %bf.prev.lo.cleared10, 40186 ; <i32> [#uses=1]
+ %2 = or i32 %1, %0 ; <i32> [#uses=1]
+ ret i32 %2
+}
//===---------------------------------------------------------------------===//