diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-26 01:52:19 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-26 01:52:19 +0000 |
commit | afaef242b0273557519df36c79ed640e9442e927 (patch) | |
tree | 9f56190fd9a03a09fedb53a42e51c8395d059720 /gcc/target.h | |
parent | cdcf9b482b57d7ff020680d03a5f888cf60208db (diff) | |
download | gcc-afaef242b0273557519df36c79ed640e9442e927.tar.gz |
* 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.h | 4 |
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. */ |