]> gcc.gnu.org Git - gcc.git/commitdiff
i386.md (extendsfdf2, [...]): Do not force operand1 to register if both operands...
authorUros Bizjak <uros@kss-loka.si>
Sat, 21 Oct 2006 15:49:41 +0000 (17:49 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 21 Oct 2006 15:49:41 +0000 (17:49 +0200)
        * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
        force operand1 to register if both operands are memory operands.
        (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
        (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
        if both operands are memory operands.
        (truncdfsf2): Do not force operand1 to register if both operands
        are memory operands.

From-SVN: r117934

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

index 51f8f31c512695f2e792c934e403129efbbfa507..953dd25cd43823be3140e863b49340a5fe509e47 100644 (file)
@@ -1,3 +1,13 @@
+2006-10-21  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
+       force operand1 to register if both operands are memory operands.
+       (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
+       (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
+       if both operands are memory operands.
+       (truncdfsf2): Do not force operand1 to register if both operands
+       are memory operands.
+
 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * Makefile.in (LIBS): Add $(GMPLIBS).
index d24b32af42ebb074044eab2f5bffdc8c3a0277f2..91596dd0c8883db70a147dbf9caf10c78972d7d3 100644 (file)
        }
       operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
     }
-  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-    operands[1] = force_reg (SFmode, operands[1]);
 })
 
 (define_insn "*extendsfdf2_mixed"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=f,m,Y")
         (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "fm,f,mY")))]
-  "TARGET_SSE2 && TARGET_MIX_SSE_I387
-   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+  "TARGET_SSE2 && TARGET_MIX_SSE_I387"
 {
   switch (which_alternative)
     {
 (define_insn "*extendsfdf2_sse"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=Y")
         (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "mY")))]
-  "TARGET_SSE2 && TARGET_SSE_MATH
-   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+  "TARGET_SSE2 && TARGET_SSE_MATH"
   "cvtss2sd\t{%1, %0|%0, %1}"
   [(set_attr "type" "ssecvt")
    (set_attr "mode" "DF")])
 (define_insn "*extendsfdf2_i387"
   [(set (match_operand:DF 0 "nonimmediate_operand" "=f,m")
         (float_extend:DF (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]
-  "TARGET_80387
-   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+  "TARGET_80387"
 {
   switch (which_alternative)
     {
        }
       operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
     }
-  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-    operands[1] = force_reg (SFmode, operands[1]);
 })
 
 (define_insn "*extendsfxf2_i387"
   [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
         (float_extend:XF (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]
-  "TARGET_80387
-   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+  "TARGET_80387"
 {
   switch (which_alternative)
     {
        }
       operands[1] = validize_mem (force_const_mem (DFmode, operands[1]));
     }
-  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
-    operands[1] = force_reg (DFmode, operands[1]);
 })
 
 (define_insn "*extenddfxf2_i387"
   [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
         (float_extend:XF (match_operand:DF 1 "nonimmediate_operand" "fm,f")))]
-  "TARGET_80387
-   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+  "TARGET_80387"
 {
   switch (which_alternative)
     {
          (match_operand:DF 1 "nonimmediate_operand" "")))]
   "TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)"
 {
-  if (MEM_P (operands[0]) && MEM_P (operands[1]))
-    operands[1] = force_reg (DFmode, operands[1]);
-
   if (TARGET_SSE2 && TARGET_SSE_MATH && !TARGET_MIX_SSE_I387)
     ;
   else if (flag_unsafe_math_optimizations)
This page took 0.110064 seconds and 5 git commands to generate.