diff options
author | Chris Lattner <sabre@nondot.org> | 2006-02-15 19:52:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-02-15 19:52:06 +0000 |
commit | 5946fef1db0a4c61464a0cb07fb40fcd28d700ef (patch) | |
tree | 23678bdb80d7a1b01bd6ab9764bd7558ac4b4e88 | |
parent | d0e58e36a9857c45ecdc910ec8db04c21e143db5 (diff) |
new test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26217 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/README.txt | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 64c1c55fd4..d61473136f 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -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. + |