Batch 3 of Mips CodeGen tests
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Fri, 8 Aug 2008 04:05:51 +0000 (04:05 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Fri, 8 Aug 2008 04:05:51 +0000 (04:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54508 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll [new file with mode: 0644]
test/CodeGen/Mips/2008-07-15-InternalConstant.ll [new file with mode: 0644]
test/CodeGen/Mips/2008-07-15-SmallSection.ll [new file with mode: 0644]

diff --git a/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll b/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll
new file mode 100644 (file)
index 0000000..bf2b4d0
--- /dev/null
@@ -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 (file)
index 0000000..ea0f5fe
--- /dev/null
@@ -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 (file)
index 0000000..0e3f864
--- /dev/null
@@ -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
+}
+