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
This commit is contained in:
Evan Cheng 2008-11-04 22:19:55 +00:00
parent 80a320d974
commit 3eb22e835f
2 changed files with 17 additions and 4 deletions

View File

@ -41,10 +41,6 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
Subtarget = &TM.getSubtarget<ARMSubtarget>();
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.

View File

@ -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 ; <i64> [#uses=1]
%1 = uitofp i64 %0 to double ; <double> [#uses=1]
%2 = fdiv double 0.000000e+00, %1 ; <double> [#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) ; <i32> [#uses=0]
ret void
}
declare i32 @fprintf(%struct.FILE*, i8*, ...)