aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2009-11-25 17:52:19 -0800
committerRichard Henderson <rth@gcc.gnu.org>2009-11-25 17:52:19 -0800
commitfaf63e396340307be88e36e86b1d30d0f8d88b14 (patch)
tree9f56190fd9a03a09fedb53a42e51c8395d059720 /gcc/target.h
parentdac29646db44bc8d782bc07f07b577e0ba22d684 (diff)
downloadgcc-faf63e396340307be88e36e86b1d30d0f8d88b14.zip
gcc-faf63e396340307be88e36e86b1d30d0f8d88b14.tar.gz
gcc-faf63e396340307be88e36e86b1d30d0f8d88b14.tar.bz2
target.h (targetm.vectorize.builtin_vec_perm_ok): New.
* target.h (targetm.vectorize.builtin_vec_perm_ok): New. * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New. * hooks.h, hooks.c (hook_bool_tree_tree_true): New. * tree-vect-slp.c (vect_create_mask_and_perm): Don't create the vector constant here... (vect_transform_slp_perm_load): ... do it here instead. Validate that the permutation vector is implementable by the target. From-SVN: r154665
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 477a512..e5df4ef 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -490,6 +490,10 @@ struct gcc_target
/* Target builtin that implements vector permute. */
tree (* builtin_vec_perm) (tree, tree*);
+
+ /* Return true if a vector created for builtin_vec_perm is valid. */
+ bool (* builtin_vec_perm_ok) (tree, tree);
+
/* Return true if the target supports misaligned store/load of a
specific factor denoted in the third parameter. The last parameter
is true if the access is defined in a packed struct. */