forked from OSchip/llvm-project
parent
dab7b06de9
commit
4e705e421c
|
@ -1676,4 +1676,26 @@ entry:
|
|||
Instcombine should be able to optimize away the loads (and thus the globals).
|
||||
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
I saw this constant expression in real code after llvm-g++ -O2:
|
||||
|
||||
declare extern_weak i32 @0(i64)
|
||||
|
||||
define void @foo() {
|
||||
br i1 icmp eq (i32 zext (i1 icmp ne (i32 (i64)* @0, i32 (i64)* null) to i32),
|
||||
i32 0), label %cond_true, label %cond_false
|
||||
cond_true:
|
||||
ret void
|
||||
cond_false:
|
||||
ret void
|
||||
}
|
||||
|
||||
That branch expression should be reduced to:
|
||||
|
||||
i1 icmp eq (i32 (i64)* @0, i32 (i64)* null)
|
||||
|
||||
It's probably not a perf issue, I just happened to see it while examining
|
||||
something else and didn't want to forget about it.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue