]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.md (floatunssisf2): Use ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 5 Feb 2008 18:07:25 +0000 (19:07 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 5 Feb 2008 18:07:25 +0000 (19:07 +0100)
        * config/i386/i386.md (floatunssisf2): Use
        ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
        (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
        Macroize expander using MODEF mode iterator.

From-SVN: r132125

gcc/ChangeLog
gcc/config/i386/i386.md

index 95da033adc3dc18c76c8ab66efb1ec1260d3789f..e640c39400342079930eef21c19fd178aa9f6830 100644 (file)
@@ -1,10 +1,16 @@
+2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (floatunssisf2): Use
+       ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
+       (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
+       Macroize expander using MODEF mode iterator.
+
 2008-02-05  Diego Novillo  <dnovillo@google.com>
 
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
 
        PR 33738
-       * tree-vrp.c (vrp_evaluate_conditional): Revert fix for
-       PR 33738.
+       * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
 
 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
index 4090ead27a0f72f631906fd18eb825298cb95c9c..fce691c38a765b1d1301a9939c0712dcf968e980 100644 (file)
   DONE;
 })
 
-(define_expand "floatunssisf2"
-  [(use (match_operand:SF 0 "register_operand" ""))
+(define_expand "floatunssi<mode>2"
+  [(use (match_operand:MODEF 0 "register_operand" ""))
    (use (match_operand:SI 1 "nonimmediate_operand" ""))]
-  "!TARGET_64BIT && TARGET_SSE_MATH"
+  "!TARGET_64BIT && SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH"
 {
-  if (TARGET_SSE2)
-    ix86_expand_convert_uns_sisf_sse (operands[0], operands[1]);
-  else
-    x86_emit_floatuns (operands);
+  ix86_expand_convert_uns_si<mode>_sse (operands[0], operands[1]);
   DONE;
 })
 
-(define_expand "floatunssidf2"
-  [(use (match_operand:DF 0 "register_operand" ""))
-   (use (match_operand:SI 1 "nonimmediate_operand" ""))]
-  "!TARGET_64BIT && TARGET_SSE_MATH && TARGET_SSE2"
-  "ix86_expand_convert_uns_sidf_sse (operands[0], operands[1]); DONE;")
-
 (define_expand "floatunsdisf2"
   [(use (match_operand:SF 0 "register_operand" ""))
    (use (match_operand:DI 1 "nonimmediate_operand" ""))]
 (define_expand "floatunsdidf2"
   [(use (match_operand:DF 0 "register_operand" ""))
    (use (match_operand:DI 1 "nonimmediate_operand" ""))]
-  "TARGET_SSE_MATH && TARGET_SSE2
-   && (TARGET_64BIT || TARGET_KEEPS_VECTOR_ALIGNED_STACK)"
+  "(TARGET_64BIT || TARGET_KEEPS_VECTOR_ALIGNED_STACK)
+   && TARGET_SSE2 && TARGET_SSE_MATH"
 {
   if (TARGET_64BIT)
     x86_emit_floatuns (operands);