Compiler projects using llvm
; RUN: llc < %s

@a_str = internal constant [8 x i8] c"a = %d\0A\00"		; <[8 x i8]*> [#uses=1]
@a_mul_str = internal constant [13 x i8] c"a * %d = %d\0A\00"		; <[13 x i8]*> [#uses=1]
@A = global i32 2		; <i32*> [#uses=1]

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

define i32 @main() {
	%a = load i32, i32* @A		; <i32> [#uses=21]
	%a_s = getelementptr [8 x i8], [8 x i8]* @a_str, i64 0, i64 0		; <i8*> [#uses=1]
	%a_mul_s = getelementptr [13 x i8], [13 x i8]* @a_mul_str, i64 0, i64 0		; <i8*> [#uses=20]
	call i32 (i8*, ...) @printf( i8* %a_s, i32 %a )		; <i32>:1 [#uses=0]
	%r_0 = mul i32 %a, 0		; <i32> [#uses=1]
	%r_1 = mul i32 %a, 1		; <i32> [#uses=1]
	%r_2 = mul i32 %a, 2		; <i32> [#uses=1]
	%r_3 = mul i32 %a, 3		; <i32> [#uses=1]
	%r_4 = mul i32 %a, 4		; <i32> [#uses=1]
	%r_5 = mul i32 %a, 5		; <i32> [#uses=1]
	%r_6 = mul i32 %a, 6		; <i32> [#uses=1]
	%r_7 = mul i32 %a, 7		; <i32> [#uses=1]
	%r_8 = mul i32 %a, 8		; <i32> [#uses=1]
	%r_9 = mul i32 %a, 9		; <i32> [#uses=1]
	%r_10 = mul i32 %a, 10		; <i32> [#uses=1]
	%r_11 = mul i32 %a, 11		; <i32> [#uses=1]
	%r_12 = mul i32 %a, 12		; <i32> [#uses=1]
	%r_13 = mul i32 %a, 13		; <i32> [#uses=1]
	%r_14 = mul i32 %a, 14		; <i32> [#uses=1]
	%r_15 = mul i32 %a, 15		; <i32> [#uses=1]
	%r_16 = mul i32 %a, 16		; <i32> [#uses=1]
	%r_17 = mul i32 %a, 17		; <i32> [#uses=1]
	%r_18 = mul i32 %a, 18		; <i32> [#uses=1]
	%r_19 = mul i32 %a, 19		; <i32> [#uses=1]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 0, i32 %r_0 )		; <i32>:2 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 1, i32 %r_1 )		; <i32>:3 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 2, i32 %r_2 )		; <i32>:4 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 3, i32 %r_3 )		; <i32>:5 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 4, i32 %r_4 )		; <i32>:6 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 5, i32 %r_5 )		; <i32>:7 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 6, i32 %r_6 )		; <i32>:8 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 7, i32 %r_7 )		; <i32>:9 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 8, i32 %r_8 )		; <i32>:10 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 9, i32 %r_9 )		; <i32>:11 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 10, i32 %r_10 )		; <i32>:12 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 11, i32 %r_11 )		; <i32>:13 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 12, i32 %r_12 )		; <i32>:14 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 13, i32 %r_13 )		; <i32>:15 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 14, i32 %r_14 )		; <i32>:16 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 15, i32 %r_15 )		; <i32>:17 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 16, i32 %r_16 )		; <i32>:18 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 17, i32 %r_17 )		; <i32>:19 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 18, i32 %r_18 )		; <i32>:20 [#uses=0]
	call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 19, i32 %r_19 )		; <i32>:21 [#uses=0]
	ret i32 0
}