OLD | NEW |
1 ; RUN: llc < %s | FileCheck %s | 1 ; RUN: llc < %s | FileCheck %s |
2 | 2 |
3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64
:64:64-p:32:32:32-v128:32:128-n32-S128" | 3 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64
:64:64-p:32:32:32-v128:32:128-n32-S128" |
4 target triple = "asmjs-unknown-emscripten" | 4 target triple = "asmjs-unknown-emscripten" |
5 | 5 |
6 @.str = private unnamed_addr constant [18 x i8] c"hello, world! %d\0A\00", align
1 ; [#uses=1 type=[18 x i8]*] | 6 @.str = private unnamed_addr constant [18 x i8] c"hello, world! %d\0A\00", align
1 ; [#uses=1 type=[18 x i8]*] |
7 | 7 |
8 @othername = internal alias void (i32)* @doit | 8 @othername = internal alias void (i32)* @doit |
9 @othername2 = internal alias void (i32)* @othername | 9 @othername2 = internal alias void (i32)* @othername |
10 @othername3 = internal alias void (i32)* @othername2 | 10 @othername3 = internal alias void (i32)* @othername2 |
11 @othername4 = internal alias bitcast (void (i32)* @othername2 to void ()*) | 11 @othername4 = internal alias bitcast (void (i32)* @othername2 to void ()*) |
12 | 12 |
13 @list = global i32 ptrtoint (void ()* @othername4 to i32) | 13 @list = global i32 ptrtoint (void ()* @othername4 to i32) |
14 @list2 = global <{ i32, i32, i32, i32, i32 }> <{ i32 ptrtoint (void (i32)* @doit
to i32), i32 ptrtoint (void (i32)* @othername to i32), i32 ptrtoint (void (i32)
* @othername2 to i32), i32 ptrtoint (void (i32)* @othername3 to i32), i32 ptrtoi
nt (void ()* @othername4 to i32) }> | 14 @list2 = global <{ i32, i32, i32, i32, i32 }> <{ i32 ptrtoint (void (i32)* @doit
to i32), i32 ptrtoint (void (i32)* @othername to i32), i32 ptrtoint (void (i32)
* @othername2 to i32), i32 ptrtoint (void (i32)* @othername3 to i32), i32 ptrtoi
nt (void ()* @othername4 to i32) }> |
15 | 15 |
16 | 16 |
17 @value = global i32 17 | 17 @value = global i32 17 |
18 @value2 = alias i32* @value | 18 @value2 = alias i32* @value |
19 @value3 = alias i32* @value | 19 @value3 = alias i32* @value |
20 | 20 |
21 define internal void @doit(i32 %x) { | 21 define internal void @doit(i32 %x) { |
22 %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([18 x i8]* @.
str, i32 0, i32 0), i32 %x) ; [#uses=0 type=i32] | 22 %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18
x i8]* @.str, i32 0, i32 0), i32 %x) ; [#uses=0 type=i32] |
23 ret void | 23 ret void |
24 } | 24 } |
25 | 25 |
26 ;;; we just check for compilation to succeed here, specifically of @list and @li
st2 | 26 ;;; we just check for compilation to succeed here, specifically of @list and @li
st2 |
27 ; CHECK: function _main() { | 27 ; CHECK: function _main() { |
28 ; CHECK: } | 28 ; CHECK: } |
29 | 29 |
30 define i32 @main() { | 30 define i32 @main() { |
31 entry: | 31 entry: |
32 call void ()* @othername4() | 32 call void () @othername4() |
33 %fp = ptrtoint void ()* @othername4 to i32 | 33 %fp = ptrtoint void ()* @othername4 to i32 |
34 %fp1 = add i32 %fp, 0 | 34 %fp1 = add i32 %fp, 0 |
35 %pf = inttoptr i32 %fp1 to void (i32)* | 35 %pf = inttoptr i32 %fp1 to void (i32)* |
36 %x = load i32* @value3 | 36 %x = load i32, i32* @value3 |
37 call void (i32)* %pf(i32 %x) | 37 call void (i32) %pf(i32 %x) |
38 %x1 = load i32* @value2 | 38 %x1 = load i32, i32* @value2 |
39 call void (i32)* @othername3(i32 %x1) | 39 call void (i32) @othername3(i32 %x1) |
40 %x2 = load i32* @value | 40 %x2 = load i32, i32* @value |
41 call void (i32)* @othername2(i32 %x2) | 41 call void (i32) @othername2(i32 %x2) |
42 store i32 18, i32* @value | 42 store i32 18, i32* @value |
43 %x3 = load i32* @value | 43 %x3 = load i32, i32* @value |
44 call void (i32)* @othername(i32 %x3) | 44 call void (i32) @othername(i32 %x3) |
45 store i32 19, i32* @value3 | 45 store i32 19, i32* @value3 |
46 %x4 = load i32* @value3 | 46 %x4 = load i32, i32* @value3 |
47 call void (i32)* @doit(i32 %x4) | 47 call void (i32) @doit(i32 %x4) |
48 ret i32 1 | 48 ret i32 1 |
49 } | 49 } |
50 | 50 |
51 declare i32 @printf(i8*, ...) | 51 declare i32 @printf(i8*, ...) |
52 | 52 |
OLD | NEW |