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