[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / GlobalOpt / storepointer-compare.ll
blob969443569c20deca220b7f13bbb3d105b2271534
1 ; RUN: opt < %s -globalopt -S | FileCheck %s
2 ; CHECK: call void @Actual
4 ; Check that a comparison does not prevent an indirect call from being made 
5 ; direct.  The global will still remain, but indirect call elim is still good.
7 @G = internal global void ()* null              ; <void ()**> [#uses=2]
9 define internal void @Actual() {
10         ret void
13 define void @init() {
14         store void ()* @Actual, void ()** @G
15         ret void
18 define void @doit() {
19         %FP = load void ()*, void ()** @G         ; <void ()*> [#uses=2]
20         %CC = icmp eq void ()* %FP, null                ; <i1> [#uses=1]
21         br i1 %CC, label %isNull, label %DoCall
23 DoCall:         ; preds = %0
24         call void %FP( )
25         ret void
27 isNull:         ; preds = %0
28         ret void