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