diff options
Diffstat (limited to 'test/ExecutionEngine')
119 files changed, 347 insertions, 217 deletions
diff --git a/test/ExecutionEngine/2002-12-16-ArgTest.ll b/test/ExecutionEngine/2002-12-16-ArgTest.ll index 4c03519a85af..eb2fe8c04832 100644 --- a/test/ExecutionEngine/2002-12-16-ArgTest.ll +++ b/test/ExecutionEngine/2002-12-16-ArgTest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @.LC0 = internal global [10 x i8] c"argc: %d\0A\00" ; <[10 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/2003-01-04-ArgumentBug.ll b/test/ExecutionEngine/2003-01-04-ArgumentBug.ll index 3182193453ae..68fdefefa542 100644 --- a/test/ExecutionEngine/2003-01-04-ArgumentBug.ll +++ b/test/ExecutionEngine/2003-01-04-ArgumentBug.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @foo(i32 %X, i32 %Y, double %A) { %cond212 = fcmp une double %A, 1.000000e+00 ; <i1> [#uses=1] diff --git a/test/ExecutionEngine/2003-01-04-LoopTest.ll b/test/ExecutionEngine/2003-01-04-LoopTest.ll index 3e27e0607ba9..5a0311dd9393 100644 --- a/test/ExecutionEngine/2003-01-04-LoopTest.ll +++ b/test/ExecutionEngine/2003-01-04-LoopTest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @main() { call i32 @mylog( i32 4 ) ; <i32>:1 [#uses=0] diff --git a/test/ExecutionEngine/2003-01-15-AlignmentTest.ll b/test/ExecutionEngine/2003-01-15-AlignmentTest.ll index 80e19ba19320..038d7500101f 100644 --- a/test/ExecutionEngine/2003-01-15-AlignmentTest.ll +++ b/test/ExecutionEngine/2003-01-15-AlignmentTest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @bar(i8* %X) { ; pointer should be 4 byte aligned! diff --git a/test/ExecutionEngine/2003-05-06-LivenessClobber.ll b/test/ExecutionEngine/2003-05-06-LivenessClobber.ll index 6f61aa68b67e..576ef7cf6380 100644 --- a/test/ExecutionEngine/2003-05-06-LivenessClobber.ll +++ b/test/ExecutionEngine/2003-05-06-LivenessClobber.ll @@ -1,7 +1,6 @@ ; This testcase should return with an exit code of 1. ; ; RUN: not %lli %s -; XFAIL: arm @test = global i64 0 ; <i64*> [#uses=1] diff --git a/test/ExecutionEngine/2003-05-07-ArgumentTest.ll b/test/ExecutionEngine/2003-05-07-ArgumentTest.ll index 236be18d96ef..42db5fe93fcd 100644 --- a/test/ExecutionEngine/2003-05-07-ArgumentTest.ll +++ b/test/ExecutionEngine/2003-05-07-ArgumentTest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s test -; XFAIL: arm declare i32 @puts(i8*) diff --git a/test/ExecutionEngine/2003-05-11-PHIRegAllocBug.ll b/test/ExecutionEngine/2003-05-11-PHIRegAllocBug.ll deleted file mode 100644 index 45279adbe57b..000000000000 --- a/test/ExecutionEngine/2003-05-11-PHIRegAllocBug.ll +++ /dev/null @@ -1,15 +0,0 @@ -; RUN: %lli %s > /dev/null - -target datalayout = "e-p:32:32" - -define i32 @main() { -entry: - br label %endif -then: ; No predecessors! - br label %endif -endif: ; preds = %then, %entry - %x = phi i32 [ 4, %entry ], [ 27, %then ] ; <i32> [#uses=0] - %result = phi i32 [ 32, %then ], [ 0, %entry ] ; <i32> [#uses=0] - ret i32 0 -} - diff --git a/test/ExecutionEngine/2003-06-04-bzip2-bug.ll b/test/ExecutionEngine/2003-06-04-bzip2-bug.ll deleted file mode 100644 index 4342aa440975..000000000000 --- a/test/ExecutionEngine/2003-06-04-bzip2-bug.ll +++ /dev/null @@ -1,19 +0,0 @@ -; RUN: %lli %s > /dev/null - -; Testcase distilled from 256.bzip2. - -target datalayout = "e-p:32:32" - -define i32 @main() { -entry: - br label %loopentry.0 -loopentry.0: ; preds = %loopentry.0, %entry - %h.0 = phi i32 [ %tmp.2, %loopentry.0 ], [ -1, %entry ] ; <i32> [#uses=1] - %tmp.2 = add i32 %h.0, 1 ; <i32> [#uses=3] - %tmp.4 = icmp ne i32 %tmp.2, 0 ; <i1> [#uses=1] - br i1 %tmp.4, label %loopentry.0, label %loopentry.1 -loopentry.1: ; preds = %loopentry.0 - %h.1 = phi i32 [ %tmp.2, %loopentry.0 ] ; <i32> [#uses=1] - ret i32 %h.1 -} - diff --git a/test/ExecutionEngine/2003-06-05-PHIBug.ll b/test/ExecutionEngine/2003-06-05-PHIBug.ll deleted file mode 100644 index 03b66c43a1ce..000000000000 --- a/test/ExecutionEngine/2003-06-05-PHIBug.ll +++ /dev/null @@ -1,17 +0,0 @@ -; RUN: %lli %s > /dev/null - -; Testcase distilled from 256.bzip2. - -target datalayout = "e-p:32:32" - -define i32 @main() { -entry: - %X = add i32 1, -1 ; <i32> [#uses=3] - br label %Next -Next: ; preds = %entry - %A = phi i32 [ %X, %entry ] ; <i32> [#uses=0] - %B = phi i32 [ %X, %entry ] ; <i32> [#uses=0] - %C = phi i32 [ %X, %entry ] ; <i32> [#uses=1] - ret i32 %C -} - diff --git a/test/ExecutionEngine/2003-08-15-AllocaAssertion.ll b/test/ExecutionEngine/2003-08-15-AllocaAssertion.ll index 22dd4ccb44cf..bee409c14411 100644 --- a/test/ExecutionEngine/2003-08-15-AllocaAssertion.ll +++ b/test/ExecutionEngine/2003-08-15-AllocaAssertion.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm ; This testcase failed to work because two variable sized allocas confused the ; local register allocator. diff --git a/test/ExecutionEngine/2003-08-21-EnvironmentTest.ll b/test/ExecutionEngine/2003-08-21-EnvironmentTest.ll index 60dc3d6b7d43..63303fcff7c6 100644 --- a/test/ExecutionEngine/2003-08-21-EnvironmentTest.ll +++ b/test/ExecutionEngine/2003-08-21-EnvironmentTest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm ; ; Regression Test: EnvironmentTest.ll diff --git a/test/ExecutionEngine/2003-08-23-RegisterAllocatePhysReg.ll b/test/ExecutionEngine/2003-08-23-RegisterAllocatePhysReg.ll index 04a5e1741bb0..8fb1bbbe9d77 100644 --- a/test/ExecutionEngine/2003-08-23-RegisterAllocatePhysReg.ll +++ b/test/ExecutionEngine/2003-08-23-RegisterAllocatePhysReg.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm ; This testcase exposes a bug in the local register allocator where it runs out ; of registers (due to too many overlapping live ranges), but then attempts to diff --git a/test/ExecutionEngine/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll b/test/ExecutionEngine/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll index 6e48c60db262..6513540903e8 100644 --- a/test/ExecutionEngine/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll +++ b/test/ExecutionEngine/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @A = global i32 0 ; <i32*> [#uses=1] diff --git a/test/ExecutionEngine/2005-12-02-TailCallBug.ll b/test/ExecutionEngine/2005-12-02-TailCallBug.ll index 8523b5e3f5b8..2ac8ad1795d8 100644 --- a/test/ExecutionEngine/2005-12-02-TailCallBug.ll +++ b/test/ExecutionEngine/2005-12-02-TailCallBug.ll @@ -1,6 +1,5 @@ ; PR672 ; RUN: %lli %s -; XFAIL: arm define i32 @main() { %f = bitcast i32 (i32, i32*, i32)* @check_tail to i32* ; <i32*> [#uses=1] diff --git a/test/ExecutionEngine/Interpreter/intrinsics.ll b/test/ExecutionEngine/Interpreter/intrinsics.ll new file mode 100644 index 000000000000..49d0bbee3048 --- /dev/null +++ b/test/ExecutionEngine/Interpreter/intrinsics.ll @@ -0,0 +1,35 @@ +; RUN: lli -O0 -force-interpreter < %s + +; libffi does not support fp128 so we don’t test it +declare float @llvm.sin.f32(float) +declare double @llvm.sin.f64(double) +declare float @llvm.cos.f32(float) +declare double @llvm.cos.f64(double) +declare float @llvm.floor.f32(float) +declare double @llvm.floor.f64(double) +declare float @llvm.ceil.f32(float) +declare double @llvm.ceil.f64(double) +declare float @llvm.trunc.f32(float) +declare double @llvm.trunc.f64(double) +declare float @llvm.round.f32(float) +declare double @llvm.round.f64(double) +declare float @llvm.copysign.f32(float, float) +declare double @llvm.copysign.f64(double, double) + +define i32 @main() { + %sin32 = call float @llvm.sin.f32(float 0.000000e+00) + %sin64 = call double @llvm.sin.f64(double 0.000000e+00) + %cos32 = call float @llvm.cos.f32(float 0.000000e+00) + %cos64 = call double @llvm.cos.f64(double 0.000000e+00) + %floor32 = call float @llvm.floor.f32(float 0.000000e+00) + %floor64 = call double @llvm.floor.f64(double 0.000000e+00) + %ceil32 = call float @llvm.ceil.f32(float 0.000000e+00) + %ceil64 = call double @llvm.ceil.f64(double 0.000000e+00) + %trunc32 = call float @llvm.trunc.f32(float 0.000000e+00) + %trunc64 = call double @llvm.trunc.f64(double 0.000000e+00) + %round32 = call float @llvm.round.f32(float 0.000000e+00) + %round64 = call double @llvm.round.f64(double 0.000000e+00) + %copysign32 = call float @llvm.copysign.f32(float 0.000000e+00, float 0.000000e+00) + %copysign64 = call double @llvm.copysign.f64(double 0.000000e+00, double 0.000000e+00) + ret i32 0 +} diff --git a/test/ExecutionEngine/Interpreter/lit.local.cfg b/test/ExecutionEngine/Interpreter/lit.local.cfg new file mode 100644 index 000000000000..8cbaf03217d5 --- /dev/null +++ b/test/ExecutionEngine/Interpreter/lit.local.cfg @@ -0,0 +1,3 @@ +# These tests require foreign function calls +if config.enable_ffi != "ON": + config.unsupported = True diff --git a/test/ExecutionEngine/MCJIT/2002-12-16-ArgTest.ll b/test/ExecutionEngine/MCJIT/2002-12-16-ArgTest.ll index babd8f6a7803..eb2fe8c04832 100644 --- a/test/ExecutionEngine/MCJIT/2002-12-16-ArgTest.ll +++ b/test/ExecutionEngine/MCJIT/2002-12-16-ArgTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @.LC0 = internal global [10 x i8] c"argc: %d\0A\00" ; <[10 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/2003-01-04-ArgumentBug.ll b/test/ExecutionEngine/MCJIT/2003-01-04-ArgumentBug.ll index bbb81b88b16a..68fdefefa542 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-04-ArgumentBug.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-04-ArgumentBug.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @foo(i32 %X, i32 %Y, double %A) { %cond212 = fcmp une double %A, 1.000000e+00 ; <i1> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/2003-01-04-LoopTest.ll b/test/ExecutionEngine/MCJIT/2003-01-04-LoopTest.ll index 7574267bdcdc..5a0311dd9393 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-04-LoopTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-04-LoopTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { call i32 @mylog( i32 4 ) ; <i32>:1 [#uses=0] diff --git a/test/ExecutionEngine/MCJIT/2003-01-04-PhiTest.ll b/test/ExecutionEngine/MCJIT/2003-01-04-PhiTest.ll index 261939ad2028..48576e7c83e6 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-04-PhiTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-04-PhiTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { ; <label>:0 diff --git a/test/ExecutionEngine/MCJIT/2003-01-09-SARTest.ll b/test/ExecutionEngine/MCJIT/2003-01-09-SARTest.ll index f76f99832825..ed58e1184377 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-09-SARTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-09-SARTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; We were accidentally inverting the signedness of right shifts. Whoops. diff --git a/test/ExecutionEngine/MCJIT/2003-01-10-FUCOM.ll b/test/ExecutionEngine/MCJIT/2003-01-10-FUCOM.ll index 2b83bb9e43e8..4960e5969005 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-10-FUCOM.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-10-FUCOM.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { %X = fadd double 0.000000e+00, 1.000000e+00 ; <double> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll b/test/ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll index d1ca2bee3994..038d7500101f 100644 --- a/test/ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @bar(i8* %X) { ; pointer should be 4 byte aligned! diff --git a/test/ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll b/test/ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll index 20ef0ff95cdd..576ef7cf6380 100644 --- a/test/ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll +++ b/test/ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll @@ -1,6 +1,6 @@ ; This testcase should return with an exit code of 1. ; -; RUN: not %lli_mcjit %s +; RUN: not %lli %s @test = global i64 0 ; <i64*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/2003-05-07-ArgumentTest.ll b/test/ExecutionEngine/MCJIT/2003-05-07-ArgumentTest.ll index c7bcc5450b09..42db5fe93fcd 100644 --- a/test/ExecutionEngine/MCJIT/2003-05-07-ArgumentTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-05-07-ArgumentTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s test +; RUN: %lli %s test declare i32 @puts(i8*) diff --git a/test/ExecutionEngine/MCJIT/2003-05-11-PHIRegAllocBug.ll b/test/ExecutionEngine/MCJIT/2003-05-11-PHIRegAllocBug.ll index 0512575d1b4e..2f9b1439a38a 100644 --- a/test/ExecutionEngine/MCJIT/2003-05-11-PHIRegAllocBug.ll +++ b/test/ExecutionEngine/MCJIT/2003-05-11-PHIRegAllocBug.ll @@ -1,6 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null - -target datalayout = "e-p:32:32" +; RUN: %lli %s > /dev/null define i32 @main() { entry: diff --git a/test/ExecutionEngine/MCJIT/2003-06-04-bzip2-bug.ll b/test/ExecutionEngine/MCJIT/2003-06-04-bzip2-bug.ll index c292a818a091..3a257895b7c4 100644 --- a/test/ExecutionEngine/MCJIT/2003-06-04-bzip2-bug.ll +++ b/test/ExecutionEngine/MCJIT/2003-06-04-bzip2-bug.ll @@ -1,9 +1,7 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; Testcase distilled from 256.bzip2. -target datalayout = "e-p:32:32" - define i32 @main() { entry: br label %loopentry.0 diff --git a/test/ExecutionEngine/MCJIT/2003-06-05-PHIBug.ll b/test/ExecutionEngine/MCJIT/2003-06-05-PHIBug.ll index c0a83f5ecbdb..8a62e0632484 100644 --- a/test/ExecutionEngine/MCJIT/2003-06-05-PHIBug.ll +++ b/test/ExecutionEngine/MCJIT/2003-06-05-PHIBug.ll @@ -1,9 +1,7 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; Testcase distilled from 256.bzip2. -target datalayout = "e-p:32:32" - define i32 @main() { entry: %X = add i32 1, -1 ; <i32> [#uses=3] diff --git a/test/ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll b/test/ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll index 55ce689b865b..bee409c14411 100644 --- a/test/ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll +++ b/test/ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; This testcase failed to work because two variable sized allocas confused the ; local register allocator. diff --git a/test/ExecutionEngine/MCJIT/2003-08-21-EnvironmentTest.ll b/test/ExecutionEngine/MCJIT/2003-08-21-EnvironmentTest.ll index 2e999967a2c5..63303fcff7c6 100644 --- a/test/ExecutionEngine/MCJIT/2003-08-21-EnvironmentTest.ll +++ b/test/ExecutionEngine/MCJIT/2003-08-21-EnvironmentTest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; ; Regression Test: EnvironmentTest.ll diff --git a/test/ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll b/test/ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll index 659901b9b36f..8fb1bbbe9d77 100644 --- a/test/ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll +++ b/test/ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; This testcase exposes a bug in the local register allocator where it runs out ; of registers (due to too many overlapping live ranges), but then attempts to diff --git a/test/ExecutionEngine/MCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll b/test/ExecutionEngine/MCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll index 68e31a7074dd..6513540903e8 100644 --- a/test/ExecutionEngine/MCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll +++ b/test/ExecutionEngine/MCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @A = global i32 0 ; <i32*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/2005-12-02-TailCallBug.ll b/test/ExecutionEngine/MCJIT/2005-12-02-TailCallBug.ll index 0bc010584f1e..6a3c0f2a31cb 100644 --- a/test/ExecutionEngine/MCJIT/2005-12-02-TailCallBug.ll +++ b/test/ExecutionEngine/MCJIT/2005-12-02-TailCallBug.ll @@ -1,5 +1,5 @@ ; PR672 -; RUN: %lli_mcjit %s +; RUN: %lli %s ; XFAIL: mcjit-ia32 define i32 @main() { diff --git a/test/ExecutionEngine/MCJIT/2007-12-10-APIntLoadStore.ll b/test/ExecutionEngine/MCJIT/2007-12-10-APIntLoadStore.ll index 43188f2be481..418361163fcf 100644 --- a/test/ExecutionEngine/MCJIT/2007-12-10-APIntLoadStore.ll +++ b/test/ExecutionEngine/MCJIT/2007-12-10-APIntLoadStore.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -force-interpreter %s +; RUN: %lli -force-interpreter %s ; PR1836 define i32 @main() { diff --git a/test/ExecutionEngine/MCJIT/2008-06-05-APInt-OverAShr.ll b/test/ExecutionEngine/MCJIT/2008-06-05-APInt-OverAShr.ll index 9897602250a6..349db69e4c63 100644 --- a/test/ExecutionEngine/MCJIT/2008-06-05-APInt-OverAShr.ll +++ b/test/ExecutionEngine/MCJIT/2008-06-05-APInt-OverAShr.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -force-interpreter=true %s | FileCheck %s +; RUN: %lli -force-interpreter=true %s | FileCheck %s ; CHECK: 1 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" diff --git a/test/ExecutionEngine/MCJIT/2010-01-15-UndefValue.ll b/test/ExecutionEngine/MCJIT/2010-01-15-UndefValue.ll index 7ed0e3870a3b..8bf03de321ba 100644 --- a/test/ExecutionEngine/MCJIT/2010-01-15-UndefValue.ll +++ b/test/ExecutionEngine/MCJIT/2010-01-15-UndefValue.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -force-interpreter=true %s > /dev/null +; RUN: %lli -force-interpreter=true %s > /dev/null define i32 @main() { %a = add i32 0, undef diff --git a/test/ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll b/test/ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll index 3f402c593116..d9ff347b0786 100644 --- a/test/ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll +++ b/test/ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s +; RUN: %lli %s ; ; Verify relocations to global symbols with addend work correctly. ; diff --git a/test/ExecutionEngine/MCJIT/cross-module-a.ll b/test/ExecutionEngine/MCJIT/cross-module-a.ll index fe8d3864c9b6..5d4e16fa4a2e 100644 --- a/test/ExecutionEngine/MCJIT/cross-module-a.ll +++ b/test/ExecutionEngine/MCJIT/cross-module-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/cross-module-b.ll %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll %s > /dev/null declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll b/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll index ee26702dfae6..eb414249bdc3 100644 --- a/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll +++ b/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips, i686, i386, arm +; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null +; XFAIL: mips, i686, i386 declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/eh-lg-pic.ll b/test/ExecutionEngine/MCJIT/eh-lg-pic.ll index 539c890f9186..9277ec4a8cae 100644 --- a/test/ExecutionEngine/MCJIT/eh-lg-pic.ll +++ b/test/ExecutionEngine/MCJIT/eh-lg-pic.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit -relocation-model=pic -code-model=large %s -; XFAIL: cygwin, win32, mingw, mips, i686, i386, aarch64, arm +; RUN: %lli -relocation-model=pic -code-model=large %s +; XFAIL: cygwin, win32, mingw, mips, i686, i386, aarch64, arm, asan, msan declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) diff --git a/test/ExecutionEngine/MCJIT/eh-sm-pic.ll b/test/ExecutionEngine/MCJIT/eh-sm-pic.ll index 00c2bb056ff3..37fb628cf0a2 100644 --- a/test/ExecutionEngine/MCJIT/eh-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/eh-sm-pic.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit -relocation-model=pic -code-model=small %s -; XFAIL: cygwin, win32, mingw, mips, i686, i386, darwin, aarch64, arm +; RUN: %lli -relocation-model=pic -code-model=small %s +; XFAIL: cygwin, win32, mingw, mips, i686, i386, darwin, aarch64, arm, asan, msan declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) diff --git a/test/ExecutionEngine/MCJIT/eh.ll b/test/ExecutionEngine/MCJIT/eh.ll index c2135736ad48..9f73e3a9937f 100644 --- a/test/ExecutionEngine/MCJIT/eh.ll +++ b/test/ExecutionEngine/MCJIT/eh.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit %s -; XFAIL: arm, cygwin, win32, mingw +; RUN: %lli %s +; XFAIL: arm, cygwin, win32, mingw, asan, msan declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) diff --git a/test/ExecutionEngine/MCJIT/fpbitcast.ll b/test/ExecutionEngine/MCJIT/fpbitcast.ll index ea39617547ab..e6d06f83db49 100644 --- a/test/ExecutionEngine/MCJIT/fpbitcast.ll +++ b/test/ExecutionEngine/MCJIT/fpbitcast.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -force-interpreter=true %s | FileCheck %s +; RUN: %lli -force-interpreter=true %s | FileCheck %s ; CHECK: 40091eb8 define i32 @test(double %x) { diff --git a/test/ExecutionEngine/MCJIT/hello-sm-pic.ll b/test/ExecutionEngine/MCJIT/hello-sm-pic.ll index 115846c78642..7db60f7aeeb4 100644 --- a/test/ExecutionEngine/MCJIT/hello-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/hello-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -relocation-model=pic -code-model=small %s > /dev/null +; RUN: %lli -relocation-model=pic -code-model=small %s > /dev/null ; XFAIL: mips, i686, i386, darwin, aarch64, arm @.LC0 = internal global [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/hello.ll b/test/ExecutionEngine/MCJIT/hello.ll index b74470724deb..47e36a589563 100644 --- a/test/ExecutionEngine/MCJIT/hello.ll +++ b/test/ExecutionEngine/MCJIT/hello.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @.LC0 = internal global [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/hello2.ll b/test/ExecutionEngine/MCJIT/hello2.ll index cd033d50947a..13b25884fee7 100644 --- a/test/ExecutionEngine/MCJIT/hello2.ll +++ b/test/ExecutionEngine/MCJIT/hello2.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @X = global i32 7 ; <i32*> [#uses=0] @msg = internal global [13 x i8] c"Hello World\0A\00" ; <[13 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/load-object-a.ll b/test/ExecutionEngine/MCJIT/load-object-a.ll index 9d27e41c6a50..080bf6cf5842 100644 --- a/test/ExecutionEngine/MCJIT/load-object-a.ll +++ b/test/ExecutionEngine/MCJIT/load-object-a.ll @@ -1,20 +1,20 @@ ; This first line will generate the .o files for the next run line ; RUN: rm -rf %t.cachedir %t.cachedir2 %t.cachedir3 ; RUN: mkdir -p %t.cachedir %t.cachedir2 %t.cachedir3 -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -enable-cache-manager -object-cache-dir=%t.cachedir %s +; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -enable-cache-manager -object-cache-dir=%t.cachedir %s ; Collect generated objects. ; RUN: find %t.cachedir -type f -name 'multi-module-?.o' -exec mv -v '{}' %t.cachedir2 ';' ; This line tests MCJIT object loading -; RUN: %lli_mcjit -extra-object=%t.cachedir2/multi-module-b.o -extra-object=%t.cachedir2/multi-module-c.o %s +; RUN: %lli -extra-object=%t.cachedir2/multi-module-b.o -extra-object=%t.cachedir2/multi-module-c.o %s ; These lines put the object files into an archive ; RUN: llvm-ar r %t.cachedir3/load-object.a %t.cachedir2/multi-module-b.o ; RUN: llvm-ar r %t.cachedir3/load-object.a %t.cachedir2/multi-module-c.o ; This line test MCJIT archive loading -; RUN: %lli_mcjit -extra-archive=%t.cachedir3/load-object.a %s +; RUN: %lli -extra-archive=%t.cachedir3/load-object.a %s declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/multi-module-a.ll b/test/ExecutionEngine/MCJIT/multi-module-a.ll index 8848ca6117f4..dc3154c7b303 100644 --- a/test/ExecutionEngine/MCJIT/multi-module-a.ll +++ b/test/ExecutionEngine/MCJIT/multi-module-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll %s > /dev/null declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll b/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll index 66fafc924acd..8626626e75f6 100644 --- a/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll +++ b/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-eh-b.ll %s -; XFAIL: arm, cygwin, win32, mingw +; RUN: %lli -extra-module=%p/Inputs/multi-module-eh-b.ll %s +; XFAIL: arm, cygwin, win32, mingw, asan, msan declare i8* @__cxa_allocate_exception(i64) declare void @__cxa_throw(i8*, i8*, i8*) declare i32 @__gxx_personality_v0(...) diff --git a/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll b/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll index f2fa59f4821f..01faecc6495b 100644 --- a/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll +++ b/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll @@ -1,5 +1,5 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null -; XFAIL: mips, i686, i386, arm +; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null +; XFAIL: mips, i686, i386 declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/non-extern-addend-smallcodemodel.ll b/test/ExecutionEngine/MCJIT/non-extern-addend-smallcodemodel.ll deleted file mode 100644 index 21db67dad669..000000000000 --- a/test/ExecutionEngine/MCJIT/non-extern-addend-smallcodemodel.ll +++ /dev/null @@ -1,25 +0,0 @@ -; RUN: %lli_mcjit -code-model=small %s > /dev/null -; XFAIL: mips -; -; FIXME: Merge this file with non-extern-addend.ll once AArch64 supports PC-rel -; relocations in ELF. (The code is identical, only the run line differs). -; -define i32 @foo(i32 %x, i32 %y, double %d) { -entry: - %d.int64 = bitcast double %d to i64 - %d.top64 = lshr i64 %d.int64, 32 - %d.top = trunc i64 %d.top64 to i32 - %d.bottom = trunc i64 %d.int64 to i32 - %topCorrect = icmp eq i32 %d.top, 3735928559 - %bottomCorrect = icmp eq i32 %d.bottom, 4277009102 - %right = and i1 %topCorrect, %bottomCorrect - %nRight = xor i1 %right, true - %retVal = zext i1 %nRight to i32 - ret i32 %retVal -} - -define i32 @main() { -entry: - %call = call i32 @foo(i32 0, i32 1, double 0xDEADBEEFFEEDFACE) - ret i32 %call -} diff --git a/test/ExecutionEngine/MCJIT/non-extern-addend.ll b/test/ExecutionEngine/MCJIT/non-extern-addend.ll index e0827f6add93..72e67ae93fe3 100644 --- a/test/ExecutionEngine/MCJIT/non-extern-addend.ll +++ b/test/ExecutionEngine/MCJIT/non-extern-addend.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @foo(i32 %x, i32 %y, double %d) { entry: diff --git a/test/ExecutionEngine/MCJIT/pr13727.ll b/test/ExecutionEngine/MCJIT/pr13727.ll index 1c719c5b7c27..6f5ae3999bcd 100644 --- a/test/ExecutionEngine/MCJIT/pr13727.ll +++ b/test/ExecutionEngine/MCJIT/pr13727.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 -disable-lazy-compilation=false %s +; RUN: %lli -O0 -disable-lazy-compilation=false %s ; The intention of this test is to verify that symbols mapped to COMMON in ELF ; work as expected. diff --git a/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll b/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll index b540bfa3bd6e..c31572361d3d 100644 --- a/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll +++ b/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll b/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll index 589ba2f6d382..d47fc6cffbb2 100644 --- a/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll +++ b/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null ; XFAIL: mips, i686, i386, arm declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll b/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll index fbbb8bdf4bc2..0fd363b4447a 100644 --- a/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll +++ b/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll b/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll index 9c2316959910..d248c4b2a94a 100644 --- a/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll +++ b/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null +; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null ; XFAIL: mips, i686, i386, arm declare i32 @FB() diff --git a/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll b/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll index 6c8ab3d5369b..30b4dd8e7abc 100644 --- a/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null +; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null define i32 @bar() nounwind { ret i32 0 diff --git a/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll b/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll index 48b939bbe35b..da4ddc6943c2 100644 --- a/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s +; RUN: %lli -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s ; XFAIL: * ; This test should fail until remote symbol resolution is supported. diff --git a/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll b/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll index 88faf21adb1b..f6a16078dfae 100644 --- a/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s +; RUN: %lli -remote-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s ; XFAIL: * ; This function should fail until remote symbol resolution is supported. diff --git a/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll b/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll index e07178ed283e..0f58710603d0 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -O0 -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s +; RUN: %lli -remote-mcjit -O0 -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s ; The intention of this test is to verify that symbols mapped to COMMON in ELF ; work as expected. diff --git a/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll b/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll index 129350b63eb0..435c21a4a9fa 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s +; RUN: %lli -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s ; Check that a variable is always aligned as specified. diff --git a/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll b/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll index 8eec0f229885..9d11415c906f 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null +; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null define double @test(double* %DP, double %Arg) nounwind { %D = load double* %DP ; <double> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll b/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll index 9fbaeb794496..40b514fd8e1f 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null +; RUN: %lli -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null @count = global i32 1, align 4 diff --git a/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll b/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll index 29ab24b39336..5119b72d4485 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null +; RUN: %lli -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null ; XFAIL: mips, aarch64, arm, i686, i386 @count = global i32 1, align 4 diff --git a/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll b/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll index d62631ff50c6..ba3ffff21425 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s +; RUN: %lli -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0), align 4 diff --git a/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll b/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll index bad026fe7d4d..bbc71afdf7e3 100644 --- a/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -remote-mcjit -O0 -relocation-model=pic -code-model=small %s +; RUN: %lli -remote-mcjit -O0 -relocation-model=pic -code-model=small %s ; XFAIL: mips, aarch64, arm, i686, i386 @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 diff --git a/test/ExecutionEngine/MCJIT/simplesttest.ll b/test/ExecutionEngine/MCJIT/simplesttest.ll index 318baf4e8ffd..85c171532752 100644 --- a/test/ExecutionEngine/MCJIT/simplesttest.ll +++ b/test/ExecutionEngine/MCJIT/simplesttest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { ret i32 0 diff --git a/test/ExecutionEngine/MCJIT/simpletest.ll b/test/ExecutionEngine/MCJIT/simpletest.ll index 5b0f2dd3055e..167a0fdfd130 100644 --- a/test/ExecutionEngine/MCJIT/simpletest.ll +++ b/test/ExecutionEngine/MCJIT/simpletest.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @bar() { ret i32 0 diff --git a/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll b/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll index 9e214f5d4753..9b83ed231e9e 100644 --- a/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s +; RUN: %lli -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s ; XFAIL: mips, i686, i386, aarch64, arm define i32 @main() nounwind { diff --git a/test/ExecutionEngine/MCJIT/stubs.ll b/test/ExecutionEngine/MCJIT/stubs.ll index f4aac3339450..b7d922f2cb6d 100644 --- a/test/ExecutionEngine/MCJIT/stubs.ll +++ b/test/ExecutionEngine/MCJIT/stubs.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -disable-lazy-compilation=false %s +; RUN: %lli -disable-lazy-compilation=false %s define i32 @main() nounwind { entry: diff --git a/test/ExecutionEngine/MCJIT/test-arith.ll b/test/ExecutionEngine/MCJIT/test-arith.ll index e1cc23b9fcd3..79f989f7265b 100644 --- a/test/ExecutionEngine/MCJIT/test-arith.ll +++ b/test/ExecutionEngine/MCJIT/test-arith.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { %A = add i8 0, 12 ; <i8> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/test-branch.ll b/test/ExecutionEngine/MCJIT/test-branch.ll index cdf10350ec11..3ae55d069b3d 100644 --- a/test/ExecutionEngine/MCJIT/test-branch.ll +++ b/test/ExecutionEngine/MCJIT/test-branch.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; test unconditional branch define i32 @main() { diff --git a/test/ExecutionEngine/MCJIT/test-call-no-external-funcs.ll b/test/ExecutionEngine/MCJIT/test-call-no-external-funcs.ll index 8a36cf2953f7..c3cb93121f6b 100644 --- a/test/ExecutionEngine/MCJIT/test-call-no-external-funcs.ll +++ b/test/ExecutionEngine/MCJIT/test-call-no-external-funcs.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @_Z14func_exit_codev() nounwind uwtable { entry: diff --git a/test/ExecutionEngine/MCJIT/test-call.ll b/test/ExecutionEngine/MCJIT/test-call.ll index 1a0f00841685..313a6c52367d 100644 --- a/test/ExecutionEngine/MCJIT/test-call.ll +++ b/test/ExecutionEngine/MCJIT/test-call.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null declare void @exit(i32) diff --git a/test/ExecutionEngine/MCJIT/test-cast.ll b/test/ExecutionEngine/MCJIT/test-cast.ll index 335ec508eff1..667fa80a4897 100644 --- a/test/ExecutionEngine/MCJIT/test-cast.ll +++ b/test/ExecutionEngine/MCJIT/test-cast.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @foo() { ret i32 0 diff --git a/test/ExecutionEngine/MCJIT/test-common-symbols-alignment.ll b/test/ExecutionEngine/MCJIT/test-common-symbols-alignment.ll index 989a47342339..a425b5c1e9b3 100644 --- a/test/ExecutionEngine/MCJIT/test-common-symbols-alignment.ll +++ b/test/ExecutionEngine/MCJIT/test-common-symbols-alignment.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 %s +; RUN: %lli -O0 %s ; This test checks that common symbols have been allocated addresses honouring ; the alignment requirement. diff --git a/test/ExecutionEngine/MCJIT/test-common-symbols.ll b/test/ExecutionEngine/MCJIT/test-common-symbols.ll index 13ee06a65071..19e2ce584689 100644 --- a/test/ExecutionEngine/MCJIT/test-common-symbols.ll +++ b/test/ExecutionEngine/MCJIT/test-common-symbols.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 -disable-lazy-compilation=false %s +; RUN: %lli -O0 -disable-lazy-compilation=false %s ; The intention of this test is to verify that symbols mapped to COMMON in ELF ; work as expected. diff --git a/test/ExecutionEngine/MCJIT/test-constantexpr.ll b/test/ExecutionEngine/MCJIT/test-constantexpr.ll index 8f15cbd7f7ef..d01479a86cdc 100644 --- a/test/ExecutionEngine/MCJIT/test-constantexpr.ll +++ b/test/ExecutionEngine/MCJIT/test-constantexpr.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; This tests to make sure that we can evaluate weird constant expressions diff --git a/test/ExecutionEngine/MCJIT/test-data-align.ll b/test/ExecutionEngine/MCJIT/test-data-align.ll index 2472d95e7778..f21ea2e2a452 100644 --- a/test/ExecutionEngine/MCJIT/test-data-align.ll +++ b/test/ExecutionEngine/MCJIT/test-data-align.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 %s +; RUN: %lli -O0 %s ; Check that a variable is always aligned as specified. diff --git a/test/ExecutionEngine/MCJIT/test-fp-no-external-funcs.ll b/test/ExecutionEngine/MCJIT/test-fp-no-external-funcs.ll index f094f3d91923..adb0550a72d7 100644 --- a/test/ExecutionEngine/MCJIT/test-fp-no-external-funcs.ll +++ b/test/ExecutionEngine/MCJIT/test-fp-no-external-funcs.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define double @test(double* %DP, double %Arg) { %D = load double* %DP ; <double> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/test-fp.ll b/test/ExecutionEngine/MCJIT/test-fp.ll index b10e9d6c169d..2bf0210d8b00 100644 --- a/test/ExecutionEngine/MCJIT/test-fp.ll +++ b/test/ExecutionEngine/MCJIT/test-fp.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define double @test(double* %DP, double %Arg) { %D = load double* %DP ; <double> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/test-global-ctors.ll b/test/ExecutionEngine/MCJIT/test-global-ctors.ll index 947d8f5d423d..ec87d155d41b 100644 --- a/test/ExecutionEngine/MCJIT/test-global-ctors.ll +++ b/test/ExecutionEngine/MCJIT/test-global-ctors.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; XFAIL: darwin @var = global i32 1, align 4 @llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @ctor_func }] diff --git a/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll b/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll index eb031f2e4f45..26bd83808026 100644 --- a/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -relocation-model=pic -code-model=small %s > /dev/null +; RUN: %lli -relocation-model=pic -code-model=small %s > /dev/null ; XFAIL: mips, aarch64, arm, i686, i386 @count = global i32 1, align 4 diff --git a/test/ExecutionEngine/MCJIT/test-global-init-nonzero.ll b/test/ExecutionEngine/MCJIT/test-global-init-nonzero.ll index b9f74b8be403..3877e9a58861 100644 --- a/test/ExecutionEngine/MCJIT/test-global-init-nonzero.ll +++ b/test/ExecutionEngine/MCJIT/test-global-init-nonzero.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @count = global i32 1, align 4 diff --git a/test/ExecutionEngine/MCJIT/test-global.ll b/test/ExecutionEngine/MCJIT/test-global.ll index 6a8c042ef89e..69e545555649 100644 --- a/test/ExecutionEngine/MCJIT/test-global.ll +++ b/test/ExecutionEngine/MCJIT/test-global.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null @count = global i32 0, align 4 diff --git a/test/ExecutionEngine/MCJIT/test-loadstore.ll b/test/ExecutionEngine/MCJIT/test-loadstore.ll index 90381947e8fb..1797599a9d8d 100644 --- a/test/ExecutionEngine/MCJIT/test-loadstore.ll +++ b/test/ExecutionEngine/MCJIT/test-loadstore.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define void @test(i8* %P, i16* %P.upgrd.1, i32* %P.upgrd.2, i64* %P.upgrd.3) { %V = load i8* %P ; <i8> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/test-local.ll b/test/ExecutionEngine/MCJIT/test-local.ll index d7c173427977..ec5ba165408f 100644 --- a/test/ExecutionEngine/MCJIT/test-local.ll +++ b/test/ExecutionEngine/MCJIT/test-local.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() nounwind uwtable { entry: diff --git a/test/ExecutionEngine/MCJIT/test-logical.ll b/test/ExecutionEngine/MCJIT/test-logical.ll index a03833e5c516..05b381bb53c2 100644 --- a/test/ExecutionEngine/MCJIT/test-logical.ll +++ b/test/ExecutionEngine/MCJIT/test-logical.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { %A = and i8 4, 8 ; <i8> [#uses=2] diff --git a/test/ExecutionEngine/MCJIT/test-loop.ll b/test/ExecutionEngine/MCJIT/test-loop.ll index 5ed8c4020f76..e951a14ed2e9 100644 --- a/test/ExecutionEngine/MCJIT/test-loop.ll +++ b/test/ExecutionEngine/MCJIT/test-loop.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { ; <label>:0 diff --git a/test/ExecutionEngine/MCJIT/test-phi.ll b/test/ExecutionEngine/MCJIT/test-phi.ll index 4245ccabed78..c5bdfd513edc 100644 --- a/test/ExecutionEngine/MCJIT/test-phi.ll +++ b/test/ExecutionEngine/MCJIT/test-phi.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; test phi node @Y = global i32 6 ; <i32*> [#uses=1] diff --git a/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll b/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll index 9e067422e312..21bcaef3aa80 100644 --- a/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll +++ b/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 -relocation-model=pic -code-model=small %s +; RUN: %lli -O0 -relocation-model=pic -code-model=small %s ; XFAIL: mips, aarch64, arm, i686, i386 @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 diff --git a/test/ExecutionEngine/MCJIT/test-ptr-reloc.ll b/test/ExecutionEngine/MCJIT/test-ptr-reloc.ll index 871d8bfa29e8..f139ddf12f81 100644 --- a/test/ExecutionEngine/MCJIT/test-ptr-reloc.ll +++ b/test/ExecutionEngine/MCJIT/test-ptr-reloc.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit -O0 %s +; RUN: %lli -O0 %s @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1 @ptr = global i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0), align 4 diff --git a/test/ExecutionEngine/MCJIT/test-ret.ll b/test/ExecutionEngine/MCJIT/test-ret.ll index 6bfc48052d02..025f53e5cb9e 100644 --- a/test/ExecutionEngine/MCJIT/test-ret.ll +++ b/test/ExecutionEngine/MCJIT/test-ret.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null ; test return instructions define void @test1() { diff --git a/test/ExecutionEngine/MCJIT/test-return.ll b/test/ExecutionEngine/MCJIT/test-return.ll index 4db1c3fe39f0..d464a4b72d80 100644 --- a/test/ExecutionEngine/MCJIT/test-return.ll +++ b/test/ExecutionEngine/MCJIT/test-return.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() nounwind uwtable { entry: diff --git a/test/ExecutionEngine/MCJIT/test-setcond-fp.ll b/test/ExecutionEngine/MCJIT/test-setcond-fp.ll index b4367d0337a0..68276e617a4a 100644 --- a/test/ExecutionEngine/MCJIT/test-setcond-fp.ll +++ b/test/ExecutionEngine/MCJIT/test-setcond-fp.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { diff --git a/test/ExecutionEngine/MCJIT/test-setcond-int.ll b/test/ExecutionEngine/MCJIT/test-setcond-int.ll index 8c7d815446cb..48dc02198ec0 100644 --- a/test/ExecutionEngine/MCJIT/test-setcond-int.ll +++ b/test/ExecutionEngine/MCJIT/test-setcond-int.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { %int1 = add i32 0, 0 ; <i32> [#uses=6] diff --git a/test/ExecutionEngine/MCJIT/test-shift.ll b/test/ExecutionEngine/MCJIT/test-shift.ll index 8d9a94ef12c8..590e2620689f 100644 --- a/test/ExecutionEngine/MCJIT/test-shift.ll +++ b/test/ExecutionEngine/MCJIT/test-shift.ll @@ -1,4 +1,4 @@ -; RUN: %lli_mcjit %s > /dev/null +; RUN: %lli %s > /dev/null define i32 @main() { %shamt = add i8 0, 1 ; <i8> [#uses=8] diff --git a/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s b/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s new file mode 100644 index 000000000000..04d269e2aebf --- /dev/null +++ b/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s @@ -0,0 +1,67 @@ +# RUN: llvm-mc -triple=arm64-apple-ios7.0.0 -code-model=small -relocation-model=pic -filetype=obj -o %T/foo.o %s +# RUN: llvm-rtdyld -triple=arm64-apple-ios7.0.0 -map-section foo.o,__text=0x10bc0 -verify -check=%s %/T/foo.o + + .section __TEXT,__text,regular,pure_instructions + .ios_version_min 7, 0 + .globl _foo + .align 2 +_foo: + movz w0, #0 + ret + + .globl _test_branch_reloc + .align 2 + + +# Test ARM64_RELOC_BRANCH26 relocation. The branch instruction only encodes 26 +# bits of the 28-bit possible branch range. The lower two bits are always zero +# and therefore ignored. +# rtdyld-check: decode_operand(br1, 0)[25:0] = (_foo - br1)[27:2] +_test_branch_reloc: +br1: + b _foo + ret + + +# Test ARM64_RELOC_PAGE21 and ARM64_RELOC_PAGEOFF12 relocation. adrp encodes +# the PC-relative page (4 KiB) difference between the adrp instruction and the +# variable ptr. ldr encodes the offset of the variable within the page. The ldr +# instruction perfroms an implicit shift on the encoded immediate (imm<<3). +# rtdyld-check: decode_operand(adrp1, 1) = (_ptr[32:12] - adrp1[32:12]) +# rtdyld-check: decode_operand(ldr1, 2) = _ptr[11:3] + .globl _test_adrp_ldr + .align 2 +_test_adrp_ldr: +adrp1: + adrp x0, _ptr@PAGE +ldr1: + ldr x0, [x0, _ptr@PAGEOFF] + ret + +# Test ARM64_RELOC_GOT_LOAD_PAGE21 and ARM64_RELOC_GOT_LOAD_PAGEOFF12 +# relocation. adrp encodes the PC-relative page (4 KiB) difference between the +# adrp instruction and the GOT entry for ptr. ldr encodes the offset of the GOT +# entry within the page. The ldr instruction perfroms an implicit shift on the +# encoded immediate (imm<<3). +# rtdyld-check: *{8}(stub_addr(foo.o, __text, _ptr)) = _ptr +# rtdyld-check: decode_operand(adrp2, 1) = (stub_addr(foo.o, __text, _ptr)[32:12] - adrp2[32:12]) +# rtdyld-check: decode_operand(ldr2, 2) = stub_addr(foo.o, __text, _ptr)[11:3] + .globl _test_adrp_ldr + .align 2 +_test_got_adrp_ldr: +adrp2: + adrp x0, _ptr@GOTPAGE +ldr2: + ldr x0, [x0, _ptr@GOTPAGEOFF] + ret + + +# Test ARM64_RELOC_UNSIGNED relocation. The absolute 64-bit address of the +# function should be stored at the 8-byte memory location. +# rtdyld-check: *{8}_ptr = _foo + .section __DATA,__data + .globl _ptr + .align 3 + .fill 4096, 1, 0 +_ptr: + .quad _foo diff --git a/test/ExecutionEngine/RuntimeDyld/AArch64/lit.local.cfg b/test/ExecutionEngine/RuntimeDyld/AArch64/lit.local.cfg new file mode 100644 index 000000000000..cec29af5bbe4 --- /dev/null +++ b/test/ExecutionEngine/RuntimeDyld/AArch64/lit.local.cfg @@ -0,0 +1,3 @@ +if not 'AArch64' in config.root.targets: + config.unsupported = True + diff --git a/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s b/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s index 86041835591f..7ff3a8975769 100644 --- a/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s +++ b/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s @@ -1,27 +1,51 @@ -# RUN: llvm-mc -triple=armv7s-apple-ios7.0.0 -relocation-model=pic -filetype=obj -o %t.o %s -# RUN: llvm-rtdyld -triple=armv7s-apple-ios7.0.0 -verify -check=%s %t.o -# RUN: rm %t.o +# RUN: llvm-mc -triple=armv7s-apple-ios7.0.0 -relocation-model=pic -filetype=obj -o %T/foo.o %s +# RUN: llvm-rtdyld -triple=armv7s-apple-ios7.0.0 -verify -check=%s %/T/foo.o - .syntax unified - .section __TEXT,__text,regular,pure_instructions - .globl bar - .align 2 + .syntax unified + .section __TEXT,__text,regular,pure_instructions + .globl bar + .align 2 bar: # Check lower 16-bits of section difference relocation -# rtdyld-check: decode_operand(insn1, 1) = (foo-(nextPC+8))[15:0] +# rtdyld-check: decode_operand(insn1, 1) = (foo$non_lazy_ptr-(nextPC+8))[15:0] insn1: - movw r0, :lower16:(foo-(nextPC+8)) + movw r0, :lower16:(foo$non_lazy_ptr-(nextPC+8)) # Check upper 16-bits of section difference relocation -# rtdyld-check: decode_operand(insn2, 2) = (foo-(nextPC+8))[31:16] +# rtdyld-check: decode_operand(insn2, 2) = (foo$non_lazy_ptr-(nextPC+8))[31:16] insn2: - movt r0, :upper16:(foo-(nextPC+8)) + movt r0, :upper16:(foo$non_lazy_ptr-(nextPC+8)) nextPC: - add r0, pc, r0 - bx lr + add r1, r0, r0 - .globl foo - .align 2 -foo: - bx lr +# Check stub generation for external symbols by referencing a common symbol, 'baz'. +# Check both the content of the stub, and the reference to the stub. +# Stub should contain '0xe51ff004' (ldr pc, [pc, #-4]), followed by the target. +# +# rtdyld-check: *{4}(stub_addr(foo.o, __text, baz)) = 0xe51ff004 +# rtdyld-check: *{4}(stub_addr(foo.o, __text, baz) + 4) = baz +# +# rtdyld-check: decode_operand(insn3, 0) = stub_addr(foo.o, __text, baz) - (insn3 + 8) +insn3: + bl baz + +# Check stub generation for internal symbols by referencing 'bar'. +# rtdyld-check: *{4}(stub_addr(foo.o, __text, bar) + 4) = bar +insn4: + bl bar + bx lr + +# Add 'aaa' to the common symbols to make sure 'baz' isn't at the start of the +# section. This ensures that we test VANILLA relocation addends correctly. + .comm aaa, 4, 2 + .comm baz, 4, 2 + .comm foo, 4, 2 + +# Check that the symbol pointer section entries are fixed up properly: +# rtdyld-check: *{4}foo$non_lazy_ptr = foo + .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers + .align 2 +foo$non_lazy_ptr: + .indirect_symbol foo + .long 0 .subsections_via_symbols diff --git a/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s b/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s new file mode 100644 index 000000000000..f427b985b58c --- /dev/null +++ b/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s @@ -0,0 +1,45 @@ +# RUN: llvm-mc -triple=i386-apple-macosx10.4 -relocation-model=dynamic-no-pic -filetype=obj -o %T/test_i386.o %s +# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -check=%s %/T/test_i386.o + + .section __TEXT,__text,regular,pure_instructions + .globl bar + .align 4, 0x90 +bar: + calll tmp0$pb +tmp0$pb: + popl %eax +# Test section difference relocation to non-lazy ptr section. +# rtdyld-check: decode_operand(inst1, 4) = x$non_lazy_ptr - tmp0$pb +inst1: + movl x$non_lazy_ptr-tmp0$pb(%eax), %eax + movl (%eax), %ebx + +# Test VANILLA relocation to jump table. +# rtdyld-check: decode_operand(inst2, 0) = bling$stub - next_pc(inst2) +inst2: + calll bling$stub + addl %ebx, %eax + +# Test scattered VANILLA relocations. +inst3: + movl y+4, %ecx + addl %ecx, %eax + retl + + .section __IMPORT,__jump_table,symbol_stubs,pure_instructions+self_modifying_code,5 +bling$stub: + .indirect_symbol bling + .ascii "\364\364\364\364\364" + + .section __IMPORT,__pointers,non_lazy_symbol_pointers +x$non_lazy_ptr: + .indirect_symbol x + .long 0 + + .comm x,4,2 + .comm bling,4,2 + + .globl y +.zerofill __DATA,__common,y,8,3 + +.subsections_via_symbols diff --git a/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s b/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s new file mode 100644 index 000000000000..8814ec3c6138 --- /dev/null +++ b/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s @@ -0,0 +1,30 @@ +# RUN: llvm-mc -triple=i386-apple-macosx10.4 -relocation-model=dynamic-no-pic -filetype=obj -o %T/MachO_i386_eh_frame.o %s +# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -map-section MachO_i386_eh_frame.o,__text=0x2000 -check=%s %/T/MachO_i386_eh_frame.o + +# rtdyld-check: *{4}(section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x20) = (main - (section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x20))[31:0] +# rtdyld-check: *{4}(section_addr(MachO_i386_eh_frame.o, __eh_frame) + 0x24) = 0x9 + + .section __TEXT,__text,regular,pure_instructions + + .globl bar + .align 4, 0x90 +bar: + retl + + .globl main + .align 4, 0x90 +main: + .cfi_startproc + pushl %ebp +Ltmp0: + .cfi_def_cfa_offset 8 +Ltmp1: + .cfi_offset %ebp, -8 + movl %esp, %ebp +Ltmp2: + .cfi_def_cfa_register %ebp + popl %ebp + jmp bar + .cfi_endproc + +.subsections_via_symbols diff --git a/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s b/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s index e87b449bb237..502f276501f8 100644 --- a/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s +++ b/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s @@ -1,6 +1,5 @@ -# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -relocation-model=pic -filetype=obj -o %t.o %s -# RUN: llvm-rtdyld -triple=x86_64-apple-macosx10.9 -verify -check=%s %t.o -# RUN: rm %t.o +# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -relocation-model=pic -filetype=obj -o %T/test_x86-64.o %s +# RUN: llvm-rtdyld -triple=x86_64-apple-macosx10.9 -verify -check=%s %/T/test_x86-64.o .section __TEXT,__text,regular,pure_instructions .globl foo @@ -20,9 +19,20 @@ insn1: # rtdyld-check: decode_operand(insn2, 4) = x - next_pc(insn2) insn2: movl x(%rip), %eax - movl $0, %eax + +# Test PC-rel GOT relocation. +# Verify both the contents of the GOT entry for y, and that the movq instruction +# references the correct GOT entry address: +# rtdyld-check: *{8}(stub_addr(test_x86-64.o, __text, y)) = y +# rtdyld-check: decode_operand(insn3, 4) = stub_addr(test_x86-64.o, __text, y) - next_pc(insn3) +insn3: + movq y@GOTPCREL(%rip), %rax + + movl $0, %eax retq + .comm y,4,2 + .section __DATA,__data .globl x .align 2 diff --git a/test/ExecutionEngine/frem.ll b/test/ExecutionEngine/frem.ll new file mode 100644 index 000000000000..7e0b6060f6fe --- /dev/null +++ b/test/ExecutionEngine/frem.ll @@ -0,0 +1,20 @@ +; LLI.exe used to crash on Windows\X86 when certain single precession +; floating point intrinsics (defined as macros) are used. +; This unit test guards against the failure. +; +; RUN: %lli %s | FileCheck %s + +@flt = internal global float 12.0e+0 +@str = internal constant [18 x i8] c"Double value: %f\0A\00" + +declare i32 @printf(i8* nocapture, ...) nounwind + +define i32 @main() { + %flt = load float* @flt + %float2 = frem float %flt, 5.0 + %double1 = fpext float %float2 to double + call i32 (i8*, ...)* @printf(i8* getelementptr ([18 x i8]* @str, i32 0, i64 0), double %double1) + ret i32 0 +} + +; CHECK: Double value: 2.0 diff --git a/test/ExecutionEngine/hello.ll b/test/ExecutionEngine/hello.ll index f2c4a7f414d9..47e36a589563 100644 --- a/test/ExecutionEngine/hello.ll +++ b/test/ExecutionEngine/hello.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @.LC0 = internal global [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/hello2.ll b/test/ExecutionEngine/hello2.ll index 155ed41d7ca6..13b25884fee7 100644 --- a/test/ExecutionEngine/hello2.ll +++ b/test/ExecutionEngine/hello2.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @X = global i32 7 ; <i32*> [#uses=0] @msg = internal global [13 x i8] c"Hello World\0A\00" ; <[13 x i8]*> [#uses=1] diff --git a/test/ExecutionEngine/mov64zext32.ll b/test/ExecutionEngine/mov64zext32.ll index f38c21a5698f..a5b246170cf0 100644 --- a/test/ExecutionEngine/mov64zext32.ll +++ b/test/ExecutionEngine/mov64zext32.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i64 @foo() { ret i64 42 diff --git a/test/ExecutionEngine/simpletest.ll b/test/ExecutionEngine/simpletest.ll index 83f9b8405902..167a0fdfd130 100644 --- a/test/ExecutionEngine/simpletest.ll +++ b/test/ExecutionEngine/simpletest.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @bar() { ret i32 0 diff --git a/test/ExecutionEngine/stubs.ll b/test/ExecutionEngine/stubs.ll index b40e4be63d41..b7d922f2cb6d 100644 --- a/test/ExecutionEngine/stubs.ll +++ b/test/ExecutionEngine/stubs.ll @@ -1,5 +1,4 @@ ; RUN: %lli -disable-lazy-compilation=false %s -; XFAIL: arm define i32 @main() nounwind { entry: diff --git a/test/ExecutionEngine/test-call-no-external-funcs.ll b/test/ExecutionEngine/test-call-no-external-funcs.ll index b2dd5325f114..c3cb93121f6b 100644 --- a/test/ExecutionEngine/test-call-no-external-funcs.ll +++ b/test/ExecutionEngine/test-call-no-external-funcs.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @_Z14func_exit_codev() nounwind uwtable { entry: diff --git a/test/ExecutionEngine/test-call.ll b/test/ExecutionEngine/test-call.ll index 3fd39fe094f3..313a6c52367d 100644 --- a/test/ExecutionEngine/test-call.ll +++ b/test/ExecutionEngine/test-call.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm declare void @exit(i32) diff --git a/test/ExecutionEngine/test-common-symbols.ll b/test/ExecutionEngine/test-common-symbols.ll index 4dd926512ae6..19e2ce584689 100644 --- a/test/ExecutionEngine/test-common-symbols.ll +++ b/test/ExecutionEngine/test-common-symbols.ll @@ -1,5 +1,4 @@ ; RUN: %lli -O0 -disable-lazy-compilation=false %s -; XFAIL: arm ; The intention of this test is to verify that symbols mapped to COMMON in ELF ; work as expected. diff --git a/test/ExecutionEngine/test-fp-no-external-funcs.ll b/test/ExecutionEngine/test-fp-no-external-funcs.ll index 139b2efea57f..61b12c2abeb7 100644 --- a/test/ExecutionEngine/test-fp-no-external-funcs.ll +++ b/test/ExecutionEngine/test-fp-no-external-funcs.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define double @test(double* %DP, double %Arg) { %D = load double* %DP ; <double> [#uses=1] diff --git a/test/ExecutionEngine/test-fp.ll b/test/ExecutionEngine/test-fp.ll index c9064500d475..2bf0210d8b00 100644 --- a/test/ExecutionEngine/test-fp.ll +++ b/test/ExecutionEngine/test-fp.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define double @test(double* %DP, double %Arg) { %D = load double* %DP ; <double> [#uses=1] diff --git a/test/ExecutionEngine/test-global-init-nonzero.ll b/test/ExecutionEngine/test-global-init-nonzero.ll index ef2d37b89199..749a4851c5d6 100644 --- a/test/ExecutionEngine/test-global-init-nonzero.ll +++ b/test/ExecutionEngine/test-global-init-nonzero.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @count = global i32 1, align 4 diff --git a/test/ExecutionEngine/test-global.ll b/test/ExecutionEngine/test-global.ll index 2ea50dea99ae..69e545555649 100644 --- a/test/ExecutionEngine/test-global.ll +++ b/test/ExecutionEngine/test-global.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm @count = global i32 0, align 4 diff --git a/test/ExecutionEngine/test-loadstore.ll b/test/ExecutionEngine/test-loadstore.ll index 75743146c6eb..1797599a9d8d 100644 --- a/test/ExecutionEngine/test-loadstore.ll +++ b/test/ExecutionEngine/test-loadstore.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define void @test(i8* %P, i16* %P.upgrd.1, i32* %P.upgrd.2, i64* %P.upgrd.3) { %V = load i8* %P ; <i8> [#uses=1] diff --git a/test/ExecutionEngine/test-local.ll b/test/ExecutionEngine/test-local.ll index 240b174ac2fe..ec5ba165408f 100644 --- a/test/ExecutionEngine/test-local.ll +++ b/test/ExecutionEngine/test-local.ll @@ -1,5 +1,4 @@ ; RUN: %lli %s > /dev/null -; XFAIL: arm define i32 @main() nounwind uwtable { entry: |