[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / Generic / print-mul-exp.ll
1 ; RUN: llc < %s
2
3 @a_str = internal constant [8 x i8] c"a = %d\0A\00"             ; <[8 x i8]*> [#uses=1]
4 @a_mul_str = internal constant [13 x i8] c"a * %d = %d\0A\00"           ; <[13 x i8]*> [#uses=1]
5 @A = global i32 2               ; <i32*> [#uses=1]
6
7 declare i32 @printf(i8*, ...)
8
9 define i32 @main() {
10         %a = load i32, i32* @A          ; <i32> [#uses=21]
11         %a_s = getelementptr [8 x i8], [8 x i8]* @a_str, i64 0, i64 0           ; <i8*> [#uses=1]
12         %a_mul_s = getelementptr [13 x i8], [13 x i8]* @a_mul_str, i64 0, i64 0         ; <i8*> [#uses=20]
13         call i32 (i8*, ...) @printf( i8* %a_s, i32 %a )         ; <i32>:1 [#uses=0]
14         %r_0 = mul i32 %a, 0            ; <i32> [#uses=1]
15         %r_1 = mul i32 %a, 1            ; <i32> [#uses=1]
16         %r_2 = mul i32 %a, 2            ; <i32> [#uses=1]
17         %r_3 = mul i32 %a, 3            ; <i32> [#uses=1]
18         %r_4 = mul i32 %a, 4            ; <i32> [#uses=1]
19         %r_5 = mul i32 %a, 5            ; <i32> [#uses=1]
20         %r_6 = mul i32 %a, 6            ; <i32> [#uses=1]
21         %r_7 = mul i32 %a, 7            ; <i32> [#uses=1]
22         %r_8 = mul i32 %a, 8            ; <i32> [#uses=1]
23         %r_9 = mul i32 %a, 9            ; <i32> [#uses=1]
24         %r_10 = mul i32 %a, 10          ; <i32> [#uses=1]
25         %r_11 = mul i32 %a, 11          ; <i32> [#uses=1]
26         %r_12 = mul i32 %a, 12          ; <i32> [#uses=1]
27         %r_13 = mul i32 %a, 13          ; <i32> [#uses=1]
28         %r_14 = mul i32 %a, 14          ; <i32> [#uses=1]
29         %r_15 = mul i32 %a, 15          ; <i32> [#uses=1]
30         %r_16 = mul i32 %a, 16          ; <i32> [#uses=1]
31         %r_17 = mul i32 %a, 17          ; <i32> [#uses=1]
32         %r_18 = mul i32 %a, 18          ; <i32> [#uses=1]
33         %r_19 = mul i32 %a, 19          ; <i32> [#uses=1]
34         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 0, i32 %r_0 )            ; <i32>:2 [#uses=0]
35         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 1, i32 %r_1 )            ; <i32>:3 [#uses=0]
36         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 2, i32 %r_2 )            ; <i32>:4 [#uses=0]
37         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 3, i32 %r_3 )            ; <i32>:5 [#uses=0]
38         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 4, i32 %r_4 )            ; <i32>:6 [#uses=0]
39         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 5, i32 %r_5 )            ; <i32>:7 [#uses=0]
40         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 6, i32 %r_6 )            ; <i32>:8 [#uses=0]
41         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 7, i32 %r_7 )            ; <i32>:9 [#uses=0]
42         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 8, i32 %r_8 )            ; <i32>:10 [#uses=0]
43         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 9, i32 %r_9 )            ; <i32>:11 [#uses=0]
44         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 10, i32 %r_10 )          ; <i32>:12 [#uses=0]
45         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 11, i32 %r_11 )          ; <i32>:13 [#uses=0]
46         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 12, i32 %r_12 )          ; <i32>:14 [#uses=0]
47         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 13, i32 %r_13 )          ; <i32>:15 [#uses=0]
48         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 14, i32 %r_14 )          ; <i32>:16 [#uses=0]
49         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 15, i32 %r_15 )          ; <i32>:17 [#uses=0]
50         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 16, i32 %r_16 )          ; <i32>:18 [#uses=0]
51         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 17, i32 %r_17 )          ; <i32>:19 [#uses=0]
52         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 18, i32 %r_18 )          ; <i32>:20 [#uses=0]
53         call i32 (i8*, ...) @printf( i8* %a_mul_s, i32 19, i32 %r_19 )          ; <i32>:21 [#uses=0]
54         ret i32 0
55 }