aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-26 01:52:19 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-26 01:52:19 +0000
commitafaef242b0273557519df36c79ed640e9442e927 (patch)
tree9f56190fd9a03a09fedb53a42e51c8395d059720 /gcc/target.h
parentcdcf9b482b57d7ff020680d03a5f888cf60208db (diff)
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154665 138bc75d-0d04-0410-961f-82ee72b054a4
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 477a512d703..e5df4ef0597 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. */