diff options
author | Richard Henderson <rth@redhat.com> | 2009-11-25 17:52:19 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2009-11-25 17:52:19 -0800 |
commit | faf63e396340307be88e36e86b1d30d0f8d88b14 (patch) | |
tree | 9f56190fd9a03a09fedb53a42e51c8395d059720 /gcc/target.h | |
parent | dac29646db44bc8d782bc07f07b577e0ba22d684 (diff) | |
download | gcc-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.h | 4 |
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. */ |