; RUN: llc < %s
; XFAIL: avr

@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
}

