Marking remote mcjit tests as XFAIL for cygwin (hopefully only temporarily).
[oota-llvm.git] / test / ExecutionEngine / MCJIT / stubs-remote.ll
1 ; RUN: %lli -mtriple=%mcjit_triple -use-mcjit -remote-mcjit -disable-lazy-compilation=false %s\r
2 ; XFAIL: arm, mingw32\r
3 \r
4 define i32 @main() nounwind {\r
5 entry:\r
6         call void @lazily_compiled_address_is_consistent()\r
7         ret i32 0\r
8 }\r
9 \r
10 ; Test PR3043: @test should have the same address before and after\r
11 ; it's JIT-compiled.\r
12 @funcPtr = common global i1 ()* null, align 4\r
13 @lcaic_failure = internal constant [46 x i8] c"@lazily_compiled_address_is_consistent failed\00"\r
14 \r
15 define void @lazily_compiled_address_is_consistent() nounwind {\r
16 entry:\r
17         store i1 ()* @test, i1 ()** @funcPtr\r
18         %pass = tail call i1 @test()            ; <i32> [#uses=1]\r
19         br i1 %pass, label %pass_block, label %fail_block\r
20 pass_block:\r
21         ret void\r
22 fail_block:\r
23         call i32 @puts(i8* getelementptr([46 x i8]* @lcaic_failure, i32 0, i32 0))\r
24         call void @exit(i32 1)\r
25         unreachable\r
26 }\r
27 \r
28 define i1 @test() nounwind {\r
29 entry:\r
30         %tmp = load i1 ()** @funcPtr\r
31         %eq = icmp eq i1 ()* %tmp, @test\r
32         ret i1 %eq\r
33 }\r
34 \r
35 declare i32 @puts(i8*) noreturn\r
36 declare void @exit(i32) noreturn\r