summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/fp_convert.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-11 15:54:17 +0000
committerChris Lattner <sabre@nondot.org>2009-08-11 15:54:17 +0000
commitd3fe75e2bf9644fec41ac1185e07229f8715700f (patch)
tree3a9cc2ca24704df99fb0eb35c4f56e30c20a7831 /test/CodeGen/ARM/fp_convert.ll
parenta1244304925a5ae80e671af3a3a2ad4679071bfa (diff)
downloadllvm-d3fe75e2bf9644fec41ac1185e07229f8715700f.tar.gz
llvm-d3fe75e2bf9644fec41ac1185e07229f8715700f.tar.bz2
llvm-d3fe75e2bf9644fec41ac1185e07229f8715700f.tar.xz
now that these are in file-check format, we can merge them together
into one bigger test (which runs faster) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78672 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/fp_convert.ll')
-rw-r--r--test/CodeGen/ARM/fp_convert.ll49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/fp_convert.ll b/test/CodeGen/ARM/fp_convert.ll
new file mode 100644
index 0000000000..fa9e97ea03
--- /dev/null
+++ b/test/CodeGen/ARM/fp_convert.ll
@@ -0,0 +1,49 @@
+; RUN: llvm-as < %s | llc -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
+; RUN: llvm-as < %s | llc -march=arm -mattr=+neon,+neonfp | FileCheck %s -check-prefix=NEON
+; RUN: llvm-as < %s | llc -march=arm -mattr=+neon,-neonfp | FileCheck %s -check-prefix=VFP2
+; RUN: llvm-as < %s | llc -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=NEON
+; RUN: llvm-as < %s | llc -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=VFP2
+
+define i32 @test1(float %a, float %b) {
+; VFP2: test1:
+; VFP2: ftosizs s0, s0
+; NEON: test1:
+; NEON: vcvt.s32.f32 d0, d0
+entry:
+ %0 = fadd float %a, %b
+ %1 = fptosi float %0 to i32
+ ret i32 %1
+}
+
+define i32 @test2(float %a, float %b) {
+; VFP2: test2:
+; VFP2: ftouizs s0, s0
+; NEON: test2:
+; NEON: vcvt.u32.f32 d0, d0
+entry:
+ %0 = fadd float %a, %b
+ %1 = fptoui float %0 to i32
+ ret i32 %1
+}
+
+define float @test3(i32 %a, i32 %b) {
+; VFP2: test3:
+; VFP2: fuitos s0, s0
+; NEON: test3:
+; NEON: vcvt.f32.u32 d0, d0
+entry:
+ %0 = add i32 %a, %b
+ %1 = uitofp i32 %0 to float
+ ret float %1
+}
+
+define float @test4(i32 %a, i32 %b) {
+; VFP2: test4:
+; VFP2: fsitos s0, s0
+; NEON: test4:
+; NEON: vcvt.f32.s32 d0, d0
+entry:
+ %0 = add i32 %a, %b
+ %1 = sitofp i32 %0 to float
+ ret float %1
+}