summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/floorf.ll
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2012-08-13 23:32:49 +0000
committerOwen Anderson <resistor@mac.com>2012-08-13 23:32:49 +0000
commit7c626d30974c632ab500171ff185a24bcf2603bf (patch)
treec8376ef145853a72e22753cb83b46218bebf45a3 /test/CodeGen/ARM/floorf.ll
parent03e593efc65807dad7ca8807554584fcb89f40f1 (diff)
downloadllvm-7c626d30974c632ab500171ff185a24bcf2603bf.tar.gz
llvm-7c626d30974c632ab500171ff185a24bcf2603bf.tar.bz2
llvm-7c626d30974c632ab500171ff185a24bcf2603bf.tar.xz
Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161807 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/floorf.ll')
-rw-r--r--test/CodeGen/ARM/floorf.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/floorf.ll b/test/CodeGen/ARM/floorf.ll
new file mode 100644
index 0000000000..29f43fdfb3
--- /dev/null
+++ b/test/CodeGen/ARM/floorf.ll
@@ -0,0 +1,29 @@
+; RUN: llc -march=arm < %s | FileCheck %s
+
+; CHECK: test1
+define float @test1() nounwind uwtable readnone ssp {
+; CHECK-NOT: floorf
+ %foo = call float @floorf(float 0x4000CCCCC0000000) nounwind readnone
+ ret float %foo
+}
+
+; CHECK: test2
+define float @test2() nounwind uwtable readnone ssp {
+; CHECK-NOT: ceilf
+ %foo = call float @ceilf(float 0x4000CCCCC0000000) nounwind readnone
+ ret float %foo
+}
+
+; CHECK: test3
+define float @test3() nounwind uwtable readnone ssp {
+; CHECK-NOT: truncf
+ %foo = call float @truncf(float 0x4000CCCCC0000000) nounwind readnone
+ ret float %foo
+}
+
+declare float @floorf(float) nounwind readnone
+declare float @ceilf(float) nounwind readnone
+declare float @truncf(float) nounwind readnone
+
+
+