aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2009-11-26 01:52:19 +0000
committerRichard Henderson <rth@redhat.com>2009-11-26 01:52:19 +0000
commit3495cbc1cad515c3b70e47c0c12a0919741732a5 (patch)
tree9f56190fd9a03a09fedb53a42e51c8395d059720 /gcc/target.h
parentbec9e16fe108f3a8cb4d6b204c2b7eb1650792b5 (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: https://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. */