OSDN Git Service

* config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jun 2008 07:06:35 +0000 (07:06 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Jun 2008 07:06:35 +0000 (07:06 +0000)
together with SSE_TARGET_MATH to disable insn pattern.
(*fop_<MODEF:mode>_2_i387): Ditto.
(*fop_<MODEF:mode>_3_i387): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137032 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 0cc5d09..b91ebd1 100644 (file)
@@ -1,3 +1,10 @@
+2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
+       together with SSE_TARGET_MATH to disable insn pattern.
+       (*fop_<MODEF:mode>_2_i387): Ditto.
+       (*fop_<MODEF:mode>_3_i387): Ditto.
+
 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
        create_stores_for_reduction, create_loads_and_stores_for_name):
        Likewise.
        * tree-phinodes.c (allocate_phi_node): Likewise.
        create_stores_for_reduction, create_loads_and_stores_for_name):
        Likewise.
        * tree-phinodes.c (allocate_phi_node): Likewise.
-       * tree-predcom.c (order_drefs, execute_pred_commoning_cbck):
-       Likewise.
-       * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element):
-       Likewise.
+       * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
+       * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
        * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
        * tree-ssa-coalesce.c (compare_pairs): Likewise.
        * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
        * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
        * tree-ssa-coalesce.c (compare_pairs): Likewise.
        * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
        unshare_variable, variable_union_info_cmp_pos, variable_union,
        dataflow_set_different_1, dataflow_set_different_2,
        vt_find_locations, variable_was_changed, set_variable_part,
        unshare_variable, variable_union_info_cmp_pos, variable_union,
        dataflow_set_different_1, dataflow_set_different_2,
        vt_find_locations, variable_was_changed, set_variable_part,
-       emit_notes_for_differences_1, emit_notes_for_differences_2):
-       Likewise.
+       emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
        * varasm.c (prefix_name, emutls_decl, section_entry_eq,
        section_entry_hash, object_block_entry_eq,
        object_block_entry_hash, create_block_symbol,
        * varasm.c (prefix_name, emutls_decl, section_entry_eq,
        section_entry_hash, object_block_entry_eq,
        object_block_entry_hash, create_block_symbol,
index b6b19a1..3c45f7c 100644 (file)
        (match_operator:MODEF 3 "binary_fp_operator"
          [(match_operand:MODEF 1 "nonimmediate_operand" "0,fm")
           (match_operand:MODEF 2 "nonimmediate_operand" "fm,0")]))]
        (match_operator:MODEF 3 "binary_fp_operator"
          [(match_operand:MODEF 1 "nonimmediate_operand" "0,fm")
           (match_operand:MODEF 2 "nonimmediate_operand" "fm,0")]))]
-  "TARGET_80387 && !TARGET_SSE_MATH
+  "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)
    && !COMMUTATIVE_ARITH_P (operands[3])
    && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
   "* return output_387_binary_op (insn, operands);"
    && !COMMUTATIVE_ARITH_P (operands[3])
    && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
   "* return output_387_binary_op (insn, operands);"
          [(float:MODEF
             (match_operand:X87MODEI12 1 "nonimmediate_operand" "m,?r"))
           (match_operand:MODEF 2 "register_operand" "0,0")]))]
          [(float:MODEF
             (match_operand:X87MODEI12 1 "nonimmediate_operand" "m,?r"))
           (match_operand:MODEF 2 "register_operand" "0,0")]))]
-  "TARGET_80387 && !TARGET_SSE_MATH
+  "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)
    && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_size)"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
    && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_size)"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
          [(match_operand:MODEF 1 "register_operand" "0,0")
           (float:MODEF
             (match_operand:X87MODEI12 2 "nonimmediate_operand" "m,?r"))]))]
          [(match_operand:MODEF 1 "register_operand" "0,0")
           (float:MODEF
             (match_operand:X87MODEI12 2 "nonimmediate_operand" "m,?r"))]))]
-  "TARGET_80387 && !TARGET_SSE_MATH
+  "TARGET_80387 && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)
    && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_size)"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")
    && (TARGET_USE_<X87MODEI12:MODE>MODE_FIOP || optimize_size)"
   "* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
   [(set (attr "type")