aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorAndrey Turetskiy <andrey.turetskiy@intel.com>2015-09-04 08:51:44 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2015-09-04 08:51:44 +0000
commit3bab634221b45ccdae547b8536cb2bc722e75ea0 (patch)
tree136c31e4bcb07d3fdb5cc05b362b1dc480b14845 /gcc/tree-vectorizer.h
parent301c092c8558aa6366013df03efa4a077d3ba61b (diff)
downloadgcc-3bab634221b45ccdae547b8536cb2bc722e75ea0.zip
gcc-3bab634221b45ccdae547b8536cb2bc722e75ea0.tar.gz
gcc-3bab634221b45ccdae547b8536cb2bc722e75ea0.tar.bz2
tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
gcc/ * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New. * doc/tm.texi: Regenerate. * target.def: Add scatter builtin. * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it for loads/stores in case of gather/scatter accordingly. (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of STMT_VINFO_GATHER_P(S). (vect_check_gather): Rename to ... (vect_check_gather_scatter): this. * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P. (vect_check_gather_scatter): Use it instead of vect_check_gather. (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter variable and new checkings for it accordingly. * tree-vect-stmts.c (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of STMT_VINFO_GATHER_P(S). (vect_check_gather_scatter): Use it instead of vect_check_gather. (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P. Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Petr Murzin <petr.murzin@intel.com> From-SVN: r227481
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 58e8f10..95276fa 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -646,8 +646,8 @@ typedef struct _stmt_vec_info {
vectorization. */
bool vectorizable;
- /* For loads only, true if this is a gather load. */
- bool gather_p;
+ /* For loads if this is a gather, for stores if this is a scatter. */
+ bool gather_scatter_p;
/* True if this is an access with loop-invariant stride. */
bool strided_p;
@@ -667,7 +667,7 @@ typedef struct _stmt_vec_info {
#define STMT_VINFO_VEC_STMT(S) (S)->vectorized_stmt
#define STMT_VINFO_VECTORIZABLE(S) (S)->vectorizable
#define STMT_VINFO_DATA_REF(S) (S)->data_ref_info
-#define STMT_VINFO_GATHER_P(S) (S)->gather_p
+#define STMT_VINFO_GATHER_SCATTER_P(S) (S)->gather_scatter_p
#define STMT_VINFO_STRIDED_P(S) (S)->strided_p
#define STMT_VINFO_SIMD_LANE_ACCESS_P(S) (S)->simd_lane_access_p
@@ -1063,8 +1063,8 @@ extern bool vect_analyze_data_refs_alignment (loop_vec_info, bb_vec_info);
extern bool vect_verify_datarefs_alignment (loop_vec_info, bb_vec_info);
extern bool vect_analyze_data_ref_accesses (loop_vec_info, bb_vec_info);
extern bool vect_prune_runtime_alias_test_list (loop_vec_info);
-extern tree vect_check_gather (gimple, loop_vec_info, tree *, tree *,
- int *);
+extern tree vect_check_gather_scatter (gimple, loop_vec_info, tree *, tree *,
+ int *);
extern bool vect_analyze_data_refs (loop_vec_info, bb_vec_info, int *,
unsigned *);
extern tree vect_create_data_ref_ptr (gimple, tree, struct loop *, tree,