;
; Test: ExternalConstant
;
; Description:
;	This regression test helps check whether the instruction combining
;	optimization pass correctly handles global variables which are marked
;	as external and constant.
;
;	If a problem occurs, we should die on an assert().  Otherwise, we
;	should pass through the optimizer without failure.
;
; Extra code:
; RUN: opt < %s -instcombine
; END.

target datalayout = "e-p:32:32"
@silly = external constant i32          ; <i32*> [#uses=1]

declare void @bzero(i8*, i32)

declare void @bcopy(i8*, i8*, i32)

declare i32 @bcmp(i8*, i8*, i32)

declare i32 @fputs(i8*, i8*)

declare i32 @fputs_unlocked(i8*, i8*)

define i32 @function(i32 %a.1) {
entry:
        %a.0 = alloca i32               ; <i32*> [#uses=2]
        %result = alloca i32            ; <i32*> [#uses=2]
        store i32 %a.1, i32* %a.0
        %tmp.0 = load i32* %a.0         ; <i32> [#uses=1]
        %tmp.1 = load i32* @silly               ; <i32> [#uses=1]
        %tmp.2 = add i32 %tmp.0, %tmp.1         ; <i32> [#uses=1]
        store i32 %tmp.2, i32* %result
        br label %return

return:         ; preds = %entry
        %tmp.3 = load i32* %result              ; <i32> [#uses=1]
        ret i32 %tmp.3
}

