new test
authorChris Lattner <sabre@nondot.org>
Wed, 15 Feb 2006 19:52:06 +0000 (19:52 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 15 Feb 2006 19:52:06 +0000 (19:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26217 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 64c1c55fd490773f17f7a67fde4dcffe4d266d84..d61473136f652bddb2de3df99b431caeeec57642 100644 (file)
@@ -64,3 +64,15 @@ Number 1 is the preferred solution.
 
 //===---------------------------------------------------------------------===//
 
+DAG combine this into mul A, 8:
+
+int %test(int %A) {
+  %B = mul int %A, 8  ;; shift
+  %C = add int %B, 7  ;; dead, no demanded bits.
+  %D = and int %C, -8 ;; dead once add is gone.
+  ret int %D
+}
+
+This sort of thing occurs in the alloca lowering code and other places that
+are generating alignment of an already aligned value.
+