[llvm-commits] [llvm] r58725 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/uint64tof64.ll

Evan Cheng evan.cheng at apple.com
Tue Nov 4 14:19:55 PST 2008


Author: evancheng
Date: Tue Nov  4 16:19:55 2008
New Revision: 58725

URL: http://llvm.org/viewvc/llvm-project?rev=58725&view=rev
Log:
Actually ARM / Mac OS X does have UINTTOFP_I64_F{64|32} libcalls.

Added:
    llvm/trunk/test/CodeGen/ARM/uint64tof64.ll
Modified:
    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=58725&r1=58724&r2=58725&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Tue Nov  4 16:19:55 2008
@@ -41,10 +41,6 @@
   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.

Added: llvm/trunk/test/CodeGen/ARM/uint64tof64.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/uint64tof64.ll?rev=58725&view=auto

==============================================================================
--- llvm/trunk/test/CodeGen/ARM/uint64tof64.ll (added)
+++ llvm/trunk/test/CodeGen/ARM/uint64tof64.ll Tue Nov  4 16:19:55 2008
@@ -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*, ...)





More information about the llvm-commits mailing list