; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK: global

@G = internal global void ()* null              ; <void ()**> [#uses=2]

define internal void @Actual() {
; CHECK-LABEL: Actual(
        ret void
}

define void @init() {
; CHECK-LABEL: init(
; CHECK: store void ()* @Actual, void ()** @G
        store void ()* @Actual, void ()** @G
        ret void
}

define void @doit() #0 {
; CHECK-LABEL: doit(
        %FP = load void ()*, void ()** @G         ; <void ()*> [#uses=2]
; CHECK: %FP = load void ()*, void ()** @G
        %CC = icmp eq void ()* %FP, null                ; <i1> [#uses=1]
; CHECK: %CC = icmp eq void ()* %FP, null
        br i1 %CC, label %isNull, label %DoCall
; CHECK: br i1 %CC, label %isNull, label %DoCall

DoCall:         ; preds = %0
; CHECK: DoCall:
; CHECK: call void %FP()
; CHECK: ret void
        call void %FP( )
        ret void

isNull:         ; preds = %0
; CHECK: isNull:
; CHECK: ret void
        ret void
}

attributes #0 = { null_pointer_is_valid }
