diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-01-06 17:35:50 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-01-06 17:35:50 +0000 |
commit | fa366800766d71e00ac1cc3adf623bef06800d0d (patch) | |
tree | f49a6c1663c23e1f5d2b50eaaa30e91ec24eab14 | |
parent | 4bb46f43eb48a9c7211916f60ee606edcd4fb4a2 (diff) |
Add a note from llvmdev, this time with more info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122966 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/README.txt | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 29bd10949e..bedc893fbb 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -2047,3 +2047,29 @@ entry: } //===---------------------------------------------------------------------===// +clang -O3 currently compiles this code + +int g(unsigned int a) { + unsigned int c[100]; + c[10] = a; + c[11] = a; + unsigned int b = c[10] + c[11]; + if(b > a*2) a = 4; + else a = 8; + return a + 7; +} + +into + +define i32 @g(i32 a) nounwind readnone { + %add = shl i32 %a, 1 + %mul = shl i32 %a, 1 + %cmp = icmp ugt i32 %add, %mul + %a.addr.0 = select i1 %cmp, i32 11, i32 15 + ret i32 %a.addr.0 +} + +The icmp should fold to false. This CSE opportunity is only available +after GVN and InstCombine have run. + +//===---------------------------------------------------------------------===// |