diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-20 09:10:36 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-20 09:10:36 +0000 |
commit | 2572aaf3e934cae6ffd6e42c202b5eee541e4666 (patch) | |
tree | dda3c5a585b3cf1bf904b5356c244c4e59fb1c22 /gcc/optabs.h | |
parent | 63fd99dbecc129a9a3f39a6c026d2083c6cc402c (diff) | |
download | gcc-2572aaf3e934cae6ffd6e42c202b5eee541e4666.tar.gz |
gcc/
* doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
* optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
convert_optab_index values.
(vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
* genopinit.c (optabs): Initialize the new optabs.
* internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
* internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
(expand_STORE_LANES): New functions.
* tree.h (build_array_type_nelts): Declare.
* tree.c (build_array_type_nelts): New function.
* tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
(vect_model_load_cost): Likewise.
(vect_store_lanes_supported, vect_load_lanes_supported)
(vect_record_strided_load_vectors): Declare.
* tree-vect-data-refs.c (vect_lanes_optab_supported_p)
(vect_store_lanes_supported, vect_load_lanes_supported): New functions.
(vect_transform_strided_load): Split out statement recording into...
(vect_record_strided_load_vectors): ...this new function.
* tree-vect-stmts.c (create_vector_array, read_vector_array)
(write_vector_array, create_array_ref): New functions.
(vect_model_store_cost): Add store_lanes_p argument.
(vect_model_load_cost): Add load_lanes_p argument.
(vectorizable_store): Try to use store-lanes functions for
interleaved stores.
(vectorizable_load): Likewise load-lanes and loads.
* tree-vect-slp.c (vect_get_and_check_slp_defs)
(vect_build_slp_tree):
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172760 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index be61f549fd4..db6e65e8975 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -578,6 +578,9 @@ enum convert_optab_index COI_satfract, COI_satfractuns, + COI_vec_load_lanes, + COI_vec_store_lanes, + COI_MAX }; @@ -598,6 +601,8 @@ enum convert_optab_index #define fractuns_optab (&convert_optab_table[COI_fractuns]) #define satfract_optab (&convert_optab_table[COI_satfract]) #define satfractuns_optab (&convert_optab_table[COI_satfractuns]) +#define vec_load_lanes_optab (&convert_optab_table[COI_vec_load_lanes]) +#define vec_store_lanes_optab (&convert_optab_table[COI_vec_store_lanes]) /* Contains the optab used for each rtx code. */ extern optab code_to_optab[NUM_RTX_CODE + 1]; |