From 3eb22e835f253ffd42a050caffa48eb08bdfc8d8 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 4 Nov 2008 22:19:55 +0000 Subject: [PATCH] Actually ARM / Mac OS X does have UINTTOFP_I64_F{64|32} libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58725 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMISelLowering.cpp | 4 ---- test/CodeGen/ARM/uint64tof64.ll | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 test/CodeGen/ARM/uint64tof64.ll diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 721213ddc10..c54ebdc0b0d 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -41,10 +41,6 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) Subtarget = &TM.getSubtarget(); if (Subtarget->isTargetDarwin()) { - // Don't have these. - setLibcallName(RTLIB::UINTTOFP_I64_F32, NULL); - setLibcallName(RTLIB::UINTTOFP_I64_F64, NULL); - // Uses VFP for Thumb libfuncs if available. if (Subtarget->isThumb() && Subtarget->hasVFP2()) { // Single-precision floating-point arithmetic. diff --git a/test/CodeGen/ARM/uint64tof64.ll b/test/CodeGen/ARM/uint64tof64.ll new file mode 100644 index 00000000000..055c3c370ee --- /dev/null +++ b/test/CodeGen/ARM/uint64tof64.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | llc -mtriple=arm-apple-darwin -mattr=+vfp2 + + %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } + %struct.__sFILEX = type opaque + %struct.__sbuf = type { i8*, i32 } +@"\01LC10" = external constant [54 x i8] ; <[54 x i8]*> [#uses=1] + +define fastcc void @t() { +entry: + %0 = load i64* null, align 4 ; [#uses=1] + %1 = uitofp i64 %0 to double ; [#uses=1] + %2 = fdiv double 0.000000e+00, %1 ; [#uses=1] + %3 = call i32 (%struct.FILE*, i8*, ...)* @fprintf(%struct.FILE* null, i8* getelementptr ([54 x i8]* @"\01LC10", i32 0, i32 0), i64 0, double %2) ; [#uses=0] + ret void +} + +declare i32 @fprintf(%struct.FILE*, i8*, ...)