From 272c6793a0d2098195c7996bd29c0c7e066486bc Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 3 May 2011 07:46:54 +0000 Subject: md.texi (vec_load_lanes, [...]): Document. 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): Update call to vect_model_store_cost. (vect_build_slp_tree): Likewise vect_model_load_cost. From-SVN: r173291 --- gcc/optabs.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/optabs.h') diff --git a/gcc/optabs.h b/gcc/optabs.h index be61f54..db6e65e 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]; -- cgit v1.1