| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- ;
- ; 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, i32* %a.0 ; <i32> [#uses=1]
- %tmp.1 = load i32, 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, i32* %result ; <i32> [#uses=1]
- ret i32 %tmp.3
- }
|