diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cacb123da95..f48e2ad19f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2011-10-20 Richard Henderson + + * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok. + * optabs.c (can_vec_perm_expr_p): Update to match. + (expand_vec_perm_expr): Likewise. + * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename + from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK. + * doc/tm.texi.in: Likewise. + 2011-10-20 Sergey Ostanevich PR target/50572 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a6cb7a3a7cc..2d44c005526 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -36446,7 +36446,7 @@ ix86_expand_vec_perm_const (rtx operands[4]) return false; } -/* Implement targetm.vectorize.builtin_vec_perm_ok. */ +/* Implement targetm.vectorize.vec_perm_const_ok. */ static bool ix86_vectorize_vec_perm_const_ok (tree vec_type, tree mask) @@ -37879,8 +37879,8 @@ ix86_autovectorize_vector_sizes (void) #undef TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST #define TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST \ ix86_builtin_vectorization_cost -#undef TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK -#define TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK \ +#undef TARGET_VECTORIZE_VEC_PERM_CONST_OK +#define TARGET_VECTORIZE_VEC_PERM_CONST_OK \ ix86_vectorize_vec_perm_const_ok #undef TARGET_VECTORIZE_PREFERRED_SIMD_MODE #define TARGET_VECTORIZE_PREFERRED_SIMD_MODE \ diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index c52753a10b5..a43ce3d1099 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -5711,7 +5711,7 @@ misalignment value (@var{misalign}). Return true if vector alignment is reachable (by peeling N iterations) for the given type. @end deftypefn -@deftypefn {Target Hook} bool TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK (tree @var{vec_type}, tree @var{mask}) +@deftypefn {Target Hook} bool TARGET_VECTORIZE_VEC_PERM_CONST_OK (tree @var{vec_type}, tree @var{mask}) Return true if a vector created for @code{vec_perm_const} is valid. @end deftypefn diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 22e82ee8d8b..cede91edb52 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -5649,7 +5649,7 @@ misalignment value (@var{misalign}). Return true if vector alignment is reachable (by peeling N iterations) for the given type. @end deftypefn -@hook TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK +@hook TARGET_VECTORIZE_VEC_PERM_CONST_OK Return true if a vector created for @code{vec_perm_const} is valid. @end deftypefn diff --git a/gcc/optabs.c b/gcc/optabs.c index 558c0fa107f..5036856524a 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -6714,7 +6714,7 @@ can_vec_perm_expr_p (tree type, tree sel) if (sel == NULL || TREE_CODE (sel) == VECTOR_CST) { if (direct_optab_handler (vec_perm_const_optab, mode) != CODE_FOR_nothing - && (sel == NULL || targetm.vectorize.builtin_vec_perm_ok (type, sel))) + && (sel == NULL || targetm.vectorize.vec_perm_const_ok (type, sel))) return true; } @@ -6808,7 +6808,7 @@ expand_vec_perm_expr (tree type, tree v0, tree v1, tree sel, rtx target) { icode = direct_optab_handler (vec_perm_const_optab, mode); if (icode != CODE_FOR_nothing - && targetm.vectorize.builtin_vec_perm_ok (TREE_TYPE (v0), sel) + && targetm.vectorize.vec_perm_const_ok (TREE_TYPE (v0), sel) && (tmp = expand_vec_perm_expr_1 (icode, target, v0_rtx, v1_rtx, sel_rtx)) != NULL) return tmp; diff --git a/gcc/target.def b/gcc/target.def index c9d60672973..60fad2a813a 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -985,9 +985,9 @@ DEFHOOK bool, (const_tree type, bool is_packed), default_builtin_vector_alignment_reachable) -/* Return true if a vector created for builtin_vec_perm is valid. */ +/* Return true if a vector created for vec_perm_const is valid. */ DEFHOOK -(builtin_vec_perm_ok, +(vec_perm_const_ok, "", bool, (tree vec_type, tree mask), hook_bool_tree_tree_true)