; 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, i32* @A               ; <i32> [#uses=2]
        %b = load i32, i32* @B               ; <i32> [#uses=1]
        %a_s = getelementptr [8 x i8], [8 x i8]* @a_str, i64 0, i64 0             ; <i8*> [#uses=1]
        %b_s = getelementptr [8 x i8], [8 x i8]* @b_str, i64 0, i64 0             ; <i8*> [#uses=1]
        %a_shl_s = getelementptr [14 x i8], [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
}

