; RUN: llc < %s

@a_str = internal constant [8 x i8] c"a = %d\0A\00"             ; <[8 x i8]*> [#uses=1]
@b_str = internal constant [8 x i8] c"b = %d\0A\00"             ; <[8 x i8]*> [#uses=1]
@a_shl_str = internal constant [14 x i8] c"a << %d = %d\0A\00"          ; <[14 x i8]*> [#uses=1]
@A = global i32 2               ; <i32*> [#uses=1]
@B = global i32 5               ; <i32*> [#uses=1]

declare i32 @printf(i8*, ...)

define i32 @main() {
entry:
        %a = load i32* @A               ; <i32> [#uses=2]
        %b = load i32* @B               ; <i32> [#uses=1]
        %a_s = getelementptr [8 x i8]* @a_str, i64 0, i64 0             ; <i8*> [#uses=1]
        %b_s = getelementptr [8 x i8]* @b_str, i64 0, i64 0             ; <i8*> [#uses=1]
        %a_shl_s = getelementptr [14 x i8]* @a_shl_str, i64 0, i64 0            ; <i8*> [#uses=1]
        call i32 (i8*, ...)* @printf( i8* %a_s, i32 %a )                ; <i32>:0 [#uses=0]
        call i32 (i8*, ...)* @printf( i8* %b_s, i32 %b )                ; <i32>:1 [#uses=0]
        br label %shl_test

shl_test:               ; preds = %shl_test, %entry
        %s = phi i8 [ 0, %entry ], [ %s_inc, %shl_test ]                ; <i8> [#uses=4]
        %shift.upgrd.1 = zext i8 %s to i32              ; <i32> [#uses=1]
        %result = shl i32 %a, %shift.upgrd.1            ; <i32> [#uses=1]
        call i32 (i8*, ...)* @printf( i8* %a_shl_s, i8 %s, i32 %result )                ; <i32>:2 [#uses=0]
        %s_inc = add i8 %s, 1           ; <i8> [#uses=1]
        %done = icmp eq i8 %s, 32               ; <i1> [#uses=1]
        br i1 %done, label %fini, label %shl_test

fini:           ; preds = %shl_test
        ret i32 0
}

