diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-08-08 04:05:51 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-08-08 04:05:51 +0000 |
commit | ba3442fc2433e200ca9620e143d3ed52c7e8ba12 (patch) | |
tree | 7fc2ad484fd0701d2b685d691a305ec5ab5dfcea /test/CodeGen/Mips | |
parent | e5813b7aa8f7379ee2e783f0ef4df73e2d9474c6 (diff) | |
download | external_llvm-ba3442fc2433e200ca9620e143d3ed52c7e8ba12.zip external_llvm-ba3442fc2433e200ca9620e143d3ed52c7e8ba12.tar.gz external_llvm-ba3442fc2433e200ca9620e143d3ed52c7e8ba12.tar.bz2 |
Batch 3 of Mips CodeGen tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54508 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Mips')
-rw-r--r-- | test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll | 33 | ||||
-rw-r--r-- | test/CodeGen/Mips/2008-07-15-InternalConstant.ll | 22 | ||||
-rw-r--r-- | test/CodeGen/Mips/2008-07-15-SmallSection.ll | 32 |
3 files changed, 87 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll b/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll new file mode 100644 index 0000000..bf2b4d0 --- /dev/null +++ b/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll @@ -0,0 +1,33 @@ +; RUN: llvm-as < %s | llc -enable-legalize-types -march=mips -f -o %t +; RUN: grep __floatsidf %t | count 1 +; RUN: grep __floatunsidf %t | count 1 +; RUN: grep __fixdfsi %t | count 1 +; RUN: grep __fixunsdfsi %t | count 1 + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64" +target triple = "mipsallegrexel-psp-elf" + +define double @int2fp(i32 %a) nounwind { +entry: + sitofp i32 %a to double ; <double>:0 [#uses=1] + ret double %0 +} + +define double @uint2double(i32 %a) nounwind { +entry: + uitofp i32 %a to double ; <double>:0 [#uses=1] + ret double %0 +} + +define i32 @double2int(double %a) nounwind { +entry: + fptosi double %a to i32 ; <i32>:0 [#uses=1] + ret i32 %0 +} + +define i32 @double2uint(double %a) nounwind { +entry: + fptoui double %a to i32 ; <i32>:0 [#uses=1] + ret i32 %0 +} + diff --git a/test/CodeGen/Mips/2008-07-15-InternalConstant.ll b/test/CodeGen/Mips/2008-07-15-InternalConstant.ll new file mode 100644 index 0000000..ea0f5fe --- /dev/null +++ b/test/CodeGen/Mips/2008-07-15-InternalConstant.ll @@ -0,0 +1,22 @@ +; RUN: llvm-as < %s | llc -enable-legalize-types -march=mips -f -o %t +; RUN: grep {rodata.str1.4,"aMS",@progbits} %t | count 1 +; RUN: grep {r.data,} %t | count 1 +; RUN: grep {\%hi} %t | count 2 +; RUN: grep {\%lo} %t | count 2 +; RUN: not grep {gp_rel} %t + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64" +target triple = "mipsallegrexel-psp-elf" +@.str = internal constant [10 x i8] c"AAAAAAAAA\00" +@i0 = internal constant [5 x i32] [ i32 0, i32 1, i32 2, i32 3, i32 4 ] + +define i8* @foo() nounwind { +entry: + ret i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0) +} + +define i32* @bar() nounwind { +entry: + ret i32* getelementptr ([5 x i32]* @i0, i32 0, i32 0) +} + diff --git a/test/CodeGen/Mips/2008-07-15-SmallSection.ll b/test/CodeGen/Mips/2008-07-15-SmallSection.ll new file mode 100644 index 0000000..0e3f864 --- /dev/null +++ b/test/CodeGen/Mips/2008-07-15-SmallSection.ll @@ -0,0 +1,32 @@ +; RUN: llvm-as < %s | llc -mips-ssection-threshold=8 -march=mips -f -o %t0 +; RUN: llvm-as < %s | llc -mips-ssection-threshold=0 -march=mips -f -o %t1 +; RUN: grep {sdata} %t0 | count 1 +; RUN: grep {sbss} %t0 | count 1 +; RUN: grep {gp_rel} %t0 | count 2 +; RUN: not grep {sdata} %t1 +; RUN: not grep {sbss} %t1 +; RUN: not grep {gp_rel} %t1 +; RUN: grep {\%hi} %t1 | count 2 +; RUN: grep {\%lo} %t1 | count 2 + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64" +target triple = "mipsallegrexel-psp-elf" + + %struct.anon = type { i32, i32 } +@s0 = global [8 x i8] c"AAAAAAA\00", align 4 +@foo = global %struct.anon { i32 2, i32 3 } +@bar = global %struct.anon zeroinitializer + +define i8* @A0() nounwind { +entry: + ret i8* getelementptr ([8 x i8]* @s0, i32 0, i32 0) +} + +define i32 @A1() nounwind { +entry: + load i32* getelementptr (%struct.anon* @foo, i32 0, i32 0), align 8 + load i32* getelementptr (%struct.anon* @foo, i32 0, i32 1), align 4 + add i32 %1, %0 + ret i32 %2 +} + |