Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / GlobalOpt / storepointer-compare.ll
blob89efe26dbdc81a6ad44e4f215c1010e377deefac
1 ; RUN: opt < %s -passes=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 ptr null              ; <ptr> [#uses=2]
9 define internal void @Actual() {
10         ret void
13 define void @init() {
14         store ptr @Actual, ptr @G
15         ret void
18 define void @doit() {
19         %FP = load ptr, ptr @G         ; <ptr> [#uses=2]
20         %CC = icmp eq ptr %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