i386.i386.md (*movsi_internal): Split (?rm,*y) alternative to (?r,*Yn) and (?m,*y...
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 16 May 2017 14:55:17 +0000 (16:55 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 16 May 2017 14:55:17 +0000 (16:55 +0200)
* config/i386.i386.md (*movsi_internal): Split (?rm,*y) alternative
to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
and (?*y,m).  Update insn attributes.

From-SVN: r248114

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

index b60812396502b9b78bf722c2bf596d637bfcc99b..d1260740b0510cb88227f5fdcc7dfe1f370d512d 100644 (file)
@@ -1,7 +1,13 @@
+2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386.i386.md (*movsi_internal): Split (?rm,*y) alternative
+       to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
+       and (?*y,m).  Update insn attributes.
+
 2017-05-16  Martin Liska  <mliska@suse.cz>
 
-       * cgraph.c (cgraph_edge::resolve_speculation): Add default value for flags
-       argument of print_gimple_stmt, print_gimple_expr,
+       * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
+       flags argument of print_gimple_stmt, print_gimple_expr,
        print_generic_stmt and print_generic_expr.
        * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
        * coretypes.h: Likewise.
@@ -14,7 +20,8 @@
        (backprop::process_use): Likewise.
        (backprop::intersect_uses): Likewise.
        (note_replacement): Likewise.
-       * gimple-ssa-store-merging.c (pass_store_merging::terminate_all_aliasing_chains): Likewise.
+       * gimple-ssa-store-merging.c
+       (pass_store_merging::terminate_all_aliasing_chains): Likewise.
        (imm_store_chain_info::coalesce_immediate_stores): Likewise.
        (pass_store_merging::execute): Likewise.
        * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
        (forward_propagate_into_cond): Likewise.
        (pass_forwprop::execute): Likewise.
        * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
-       * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): Likewise.
+       * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
+       Likewise.
        (move_computations_worker): Likewise.
        (execute_sm): Likewise.
        * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
        (visit_use): Likewise.
        (sccvn_dom_walker::before_dom_children): Likewise.
        (run_scc_vn): Likewise.
-       * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
+       * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
+       Likewise.
        (expr_hash_elt::print): Likewise.
        (const_and_copies::pop_to_marker): Likewise.
        (const_and_copies::record_const_or_copy_raw): Likewise.
 
 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
 
-       plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637)
+       * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
 
 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
 
index 6aca64b59be819338c5275bed2f0b6c9cddbcfb5..ff2bb1efc2666375447f0b179d1df04e26e382fe 100644 (file)
 
 (define_insn "*movsi_internal"
   [(set (match_operand:SI 0 "nonimmediate_operand"
-                       "=r,m ,*y,*y,?rm,?*y,*v,*v,*v,m ,?r ,?r,?*Yi,*k,*k ,*rm")
+    "=r,m ,*y,*y,?*y,?m,?r ,?*Ym,*v,*v,*v,m ,?r ,?r,?*Yi,*k,*k ,*rm")
        (match_operand:SI 1 "general_operand"
-                       "g ,re,C ,*y,*y ,rm ,C ,*v,m ,*v,*Yj,*v,r   ,*r,*km,*k"))]
+    "g ,re,C ,*y,m  ,*y,*Yn,r   ,C ,*v,m ,*v,*Yj,*v,r   ,*r,*km,*k"))]
   "!(MEM_P (operands[0]) && MEM_P (operands[1]))"
 {
   switch (get_attr_type (insn))
     }
 }
   [(set (attr "isa")
-     (if_then_else (eq_attr "alternative" "11")
+     (if_then_else (eq_attr "alternative" "13")
        (const_string "sse4")
        (const_string "*")))
    (set (attr "type")
      (cond [(eq_attr "alternative" "2")
              (const_string "mmx")
-           (eq_attr "alternative" "3,4,5")
+           (eq_attr "alternative" "3,4,5,6,7")
              (const_string "mmxmov")
-           (eq_attr "alternative" "6,11")
+           (eq_attr "alternative" "8,13")
              (const_string "sselog1")
-           (eq_attr "alternative" "7,8,9,10,12")
+           (eq_attr "alternative" "9,10,11,12,14")
              (const_string "ssemov")
-           (eq_attr "alternative" "13,14,15")
+           (eq_attr "alternative" "15,16,17")
              (const_string "mskmov")
            (and (match_operand 0 "register_operand")
                 (match_operand 1 "pic_32bit_operand"))
           ]
           (const_string "imov")))
    (set (attr "length_immediate")
-     (if_then_else (eq_attr "alternative" "11")
+     (if_then_else (eq_attr "alternative" "13")
        (const_string "1")
        (const_string "*")))
    (set (attr "prefix_extra")
-     (if_then_else (eq_attr "alternative" "11")
+     (if_then_else (eq_attr "alternative" "13")
        (const_string "1")
        (const_string "*")))
    (set (attr "prefix")
    (set (attr "mode")
      (cond [(eq_attr "alternative" "2,3")
              (const_string "DI")
-           (eq_attr "alternative" "6,7")
+           (eq_attr "alternative" "8,9")
              (cond [(ior (match_operand 0 "ext_sse_reg_operand")
                          (match_operand 1 "ext_sse_reg_operand"))
                       (const_string "XI")
                    ]
                    (const_string "TI"))
 
-           (and (eq_attr "alternative" "8,9")
+           (and (eq_attr "alternative" "10,11")
                 (not (match_test "TARGET_SSE2")))
              (const_string "SF")
-           (eq_attr "alternative" "11")
+           (eq_attr "alternative" "13")
              (const_string "TI")
           ]
           (const_string "SI")))])