[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp

Evan Cheng evan.cheng at apple.com
Mon Jan 16 18:33:00 PST 2006



Changes in directory llvm/lib/Target/X86:

X86ISelLowering.cpp updated: 1.45 -> 1.46
---
Log message:

SSE does not support i64 SINT_TO_FP (FP stack doesn't either, but we custom
expand it), so ask legalizer to expand i32 UINT_TO_FP.


---
Diffs of the changes:  (+6 -1)

 X86ISelLowering.cpp |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.45 llvm/lib/Target/X86/X86ISelLowering.cpp:1.46
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.45	Mon Jan 16 18:37:42 2006
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Mon Jan 16 20:32:49 2006
@@ -52,7 +52,12 @@
   setOperationAction(ISD::UINT_TO_FP       , MVT::i1   , Promote);
   setOperationAction(ISD::UINT_TO_FP       , MVT::i8   , Promote);
   setOperationAction(ISD::UINT_TO_FP       , MVT::i16  , Promote);
-  setOperationAction(ISD::UINT_TO_FP       , MVT::i32  , Promote);
+
+  if (X86ScalarSSE)
+    // No SSE i64 SINT_TO_FP, so expand i32 UINT_TO_FP instead.
+    setOperationAction(ISD::UINT_TO_FP     , MVT::i32  , Expand);
+  else
+    setOperationAction(ISD::UINT_TO_FP     , MVT::i32  , Promote);
 
   // Promote i1/i8 SINT_TO_FP to larger SINT_TO_FP's, as X86 doesn't have
   // this operation.






More information about the llvm-commits mailing list