OSDN Git Service

* config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Apr 2011 14:18:25 +0000 (14:18 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Apr 2011 14:18:25 +0000 (14:18 +0000)
(avx_vperm2f128_*_operand): Ditto.
* config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
Use avx_vpermilp_parallel in insn condition.
(*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
Use avx_vperm2f128_parallel in insn condition.

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

gcc/ChangeLog
gcc/config/i386/predicates.md
gcc/config/i386/sse.md

index 885529e..f2e0546 100644 (file)
@@ -1,3 +1,12 @@
+2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
+       (avx_vperm2f128_*_operand): Ditto.
+       * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
+       Use avx_vpermilp_parallel in insn condition.
+       (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
+       Use avx_vperm2f128_parallel in insn condition.
+
 2011-04-27  Richard Guenther  <rguenther@suse.de>
 
        * Makefile.in (tree-ssa-structalias.o): Remove
@@ -10,8 +19,7 @@
        * tree-ssa-alias.h (delete_alias_heapvars): Remove.
        * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
        * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
-       * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar
-       flag.
+       * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
        * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
        (struct heapvar_map): Likewise.
        (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
 
        * ipa-prop.c (function_insertion_hook_holder): New holder.
        (ipa_add_new_function): New function.
-       (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): Register/deregister
-       holder.
+       (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
+       Register/deregister holder.
 
 2011-04-27  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/48772
-       * tree-ssa-pre.c (eliminate): Update call stmts after elimination
-       only.
+       * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
 
 2011-04-27  Richard Guenther  <rguenther@suse.de>
 
        * ipa-inline.c (edge_badness): Update.
        (ipa_inline): dump summaries after inlining.
        * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
-       new.
+       New.
        (inline_edge_summary): New function.
        * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
        (inline_edge_removal_hook): Handle edge summaries.
 
 2011-04-26  Xinliang David Li  <davidxl@google.com>
 
-       * tree-ssa-uninit.c (warn_uninitialized_phi): Pass
-        warning code.
+       * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
        * c-family/c-opts.c (c_common_handle_option): Set
        warn_maybe_uninitialized.
        * opts.c (common_handle_option): Ditto.
 
 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
-       * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test
-       TARGET_NEWABI.
+       * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
        (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
        (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
 
 
        * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
        mips-tdump reference to ...
-       (Specific, alpha*-dec-osf5.1): ... here.
-       Adapt for Tru64 UNIX.
+       (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
        * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
        reference by Tru64 UNIX.
 
index b8b6bf6..fae3a05 100644 (file)
   return true;
 })
 
-;; Return true if OP is a parallel for a vpermilp[ds] permute.
-;; ??? It would be much easier if the PARALLEL for a VEC_SELECT
-;; had a mode, but it doesn't.  So we have 4 copies and install
-;; the mode by hand.
-
-(define_predicate "avx_vpermilp_v8sf_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vpermilp_parallel (op, V8SFmode)")))
-
-(define_predicate "avx_vpermilp_v4df_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vpermilp_parallel (op, V4DFmode)")))
-
-(define_predicate "avx_vpermilp_v4sf_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vpermilp_parallel (op, V4SFmode)")))
-
-(define_predicate "avx_vpermilp_v2df_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vpermilp_parallel (op, V2DFmode)")))
-
-;; Return true if OP is a parallel for a vperm2f128 permute.
-
-(define_predicate "avx_vperm2f128_v8sf_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vperm2f128_parallel (op, V8SFmode)")))
-
-(define_predicate "avx_vperm2f128_v8si_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vperm2f128_parallel (op, V8SImode)")))
-
-(define_predicate "avx_vperm2f128_v4df_operand"
-  (and (match_code "parallel")
-       (match_test "avx_vperm2f128_parallel (op, V4DFmode)")))
-
 ;; Return true if OP is a parallel for a vbroadcast permute.
 
 (define_predicate "avx_vbroadcast_operand"
index 498f9b9..5963a7f 100644 (file)
   [(set (match_operand:AVXMODEF2P 0 "register_operand" "=x")
        (vec_select:AVXMODEF2P
          (match_operand:AVXMODEF2P 1 "nonimmediate_operand" "xm")
-         (match_parallel 2 "avx_vpermilp_<mode>_operand"
+         (match_parallel 2 ""
            [(match_operand 3 "const_int_operand" "")])))]
-  "TARGET_AVX"
+  "TARGET_AVX
+   && avx_vpermilp_parallel (operands[2], <MODE>mode)"
 {
   int mask = avx_vpermilp_parallel (operands[2], <MODE>mode) - 1;
   operands[2] = GEN_INT (mask);
          (vec_concat:<ssedoublesizemode>
            (match_operand:AVX256MODE2P 1 "register_operand" "x")
            (match_operand:AVX256MODE2P 2 "nonimmediate_operand" "xm"))
-         (match_parallel 3 "avx_vperm2f128_<mode>_operand"
+         (match_parallel 3 ""
            [(match_operand 4 "const_int_operand" "")])))]
-  "TARGET_AVX"
+  "TARGET_AVX
+   && avx_vperm2f128_parallel (operands[3], <MODE>mode)"
 {
   int mask = avx_vperm2f128_parallel (operands[3], <MODE>mode) - 1;
   operands[3] = GEN_INT (mask);