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

Evan Cheng evan.cheng at apple.com
Fri Feb 17 23:26:29 PST 2006



Changes in directory llvm/lib/Target/X86:

X86ISelLowering.cpp updated: 1.89 -> 1.90
---
Log message:

If SSE3 is available, promote FP_TO_UINT i32 to FP_TO_SINT i64 to take
advantage of fisttpll.


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

 X86ISelLowering.cpp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.89 llvm/lib/Target/X86/X86ISelLowering.cpp:1.90
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.89	Fri Feb 17 18:15:05 2006
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Sat Feb 18 01:26:17 2006
@@ -101,12 +101,13 @@
   setOperationAction(ISD::FP_TO_UINT       , MVT::i8   , Promote);
   setOperationAction(ISD::FP_TO_UINT       , MVT::i16  , Promote);
 
-  if (X86ScalarSSE)
+  if (X86ScalarSSE && !Subtarget->hasSSE3())
     // Expand FP_TO_UINT into a select.
     // FIXME: We would like to use a Custom expander here eventually to do
     // the optimal thing for SSE vs. the default expansion in the legalizer.
     setOperationAction(ISD::FP_TO_UINT     , MVT::i32  , Expand);
   else
+    // With SSE3 we can use fisttpll to convert to a signed i64.
     setOperationAction(ISD::FP_TO_UINT     , MVT::i32  , Promote);
 
   setOperationAction(ISD::BIT_CONVERT      , MVT::f32  , Expand);






More information about the llvm-commits mailing list