diff options
Diffstat (limited to 'test/CodeGen/SPARC')
-rw-r--r-- | test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll | 12 | ||||
-rw-r--r-- | test/CodeGen/SPARC/2007-05-09-JumpTables.ll | 30 | ||||
-rw-r--r-- | test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll | 11 | ||||
-rw-r--r-- | test/CodeGen/SPARC/basictest.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/SPARC/ctpop.ll | 13 | ||||
-rw-r--r-- | test/CodeGen/SPARC/dg.exp | 5 | ||||
-rw-r--r-- | test/CodeGen/SPARC/xnor.ll | 14 |
7 files changed, 91 insertions, 0 deletions
diff --git a/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll b/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll new file mode 100644 index 0000000..d93c839 --- /dev/null +++ b/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll @@ -0,0 +1,12 @@ +; RUN: llvm-upgrade < %s | llvm-as | llc -march=sparc + +void %execute_list() { + %tmp.33.i = div float 0.000000e+00, 0.000000e+00 ; <float> [#uses=1] + %tmp.37.i = mul float 0.000000e+00, %tmp.33.i ; <float> [#uses=1] + %tmp.42.i = add float %tmp.37.i, 0.000000e+00 ; <float> [#uses=1] + call void %gl_EvalCoord1f( float %tmp.42.i ) + ret void +} + +declare void %gl_EvalCoord1f( float) + diff --git a/test/CodeGen/SPARC/2007-05-09-JumpTables.ll b/test/CodeGen/SPARC/2007-05-09-JumpTables.ll new file mode 100644 index 0000000..a014ace --- /dev/null +++ b/test/CodeGen/SPARC/2007-05-09-JumpTables.ll @@ -0,0 +1,30 @@ +; RUN: llvm-as < %s | llc -march=sparc + +; We cannot emit jump tables on Sparc, but we should correctly handle this case. + +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" + +define i32 @foo(i32 %f) { +entry: + switch i32 %f, label %bb14 [ + i32 0, label %UnifiedReturnBlock + i32 1, label %bb4 + i32 2, label %bb7 + i32 3, label %bb10 + ] + +bb4: ; preds = %entry + ret i32 2 + +bb7: ; preds = %entry + ret i32 5 + +bb10: ; preds = %entry + ret i32 9 + +bb14: ; preds = %entry + ret i32 0 + +UnifiedReturnBlock: ; preds = %entry + ret i32 1 +} diff --git a/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll b/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll new file mode 100644 index 0000000..d1ca44d --- /dev/null +++ b/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llc -march=sparc +; PR1540 + +declare float @sinf(float) +declare double @sin(double) +define double @test_sin(float %F) { + %G = call float @sinf( float %F ) ; <float> [#uses=1] + %H = fpext float %G to double ; <double> [#uses=1] + %I = call double @sin( double %H ) ; <double> [#uses=1] + ret double %I +} diff --git a/test/CodeGen/SPARC/basictest.ll b/test/CodeGen/SPARC/basictest.ll new file mode 100644 index 0000000..5c3e075 --- /dev/null +++ b/test/CodeGen/SPARC/basictest.ll @@ -0,0 +1,6 @@ +; RUN: llvm-as < %s | llc -march=sparc + +define i32 @test(i32 %X) { + %tmp.1 = add i32 %X, 1 + ret i32 %tmp.1 +} diff --git a/test/CodeGen/SPARC/ctpop.ll b/test/CodeGen/SPARC/ctpop.ll new file mode 100644 index 0000000..55fa8c5 --- /dev/null +++ b/test/CodeGen/SPARC/ctpop.ll @@ -0,0 +1,13 @@ +; RUN: llvm-upgrade < %s | llvm-as | \ +; RUN: llc -march=sparc -mattr=v9 -enable-sparc-v9-insts +; RUN: llvm-upgrade < %s | llvm-as | llc -march=sparc -mattr=-v9 | \ +; RUN: not grep popc +; RUN: llvm-upgrade < %s | llvm-as | \ +; RUN: llc -march=sparc -mattr=v9 -enable-sparc-v9-insts | grep popc + +declare uint %llvm.ctpop.i32(uint) +uint %test(uint %X) { + %Y = call uint %llvm.ctpop.i32(uint %X) + ret uint %Y +} + diff --git a/test/CodeGen/SPARC/dg.exp b/test/CodeGen/SPARC/dg.exp new file mode 100644 index 0000000..a1ce6a1 --- /dev/null +++ b/test/CodeGen/SPARC/dg.exp @@ -0,0 +1,5 @@ +load_lib llvm.exp + +if { [llvm_supports_target Sparc] } { + RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,llx,c,cpp,tr}]] +} diff --git a/test/CodeGen/SPARC/xnor.ll b/test/CodeGen/SPARC/xnor.ll new file mode 100644 index 0000000..2365176 --- /dev/null +++ b/test/CodeGen/SPARC/xnor.ll @@ -0,0 +1,14 @@ +; RUN: llvm-upgrade < %s | llvm-as | llc -march=sparc | \ +; RUN: grep xnor | wc -l | grep 2 + +int %test1(int %X, int %Y) { + %A = xor int %X, %Y + %B = xor int %A, -1 + ret int %B +} + +int %test2(int %X, int %Y) { + %A = xor int %X, -1 + %B = xor int %A, %Y + ret int %B +} |