diff options
author | Robin Dapp <rdapp@ventanamicro.com> | 2025-07-03 11:04:25 +0200 |
---|---|---|
committer | Robin Dapp <rdapp@ventanamicro.com> | 2025-07-24 16:12:39 +0200 |
commit | d581d84f919cd269b1fd153d9af51eb9efd10d82 (patch) | |
tree | 1e93ca9988b43ed530d2b13b017a4d4f752b390f /gcc/tree-vectorizer.h | |
parent | a901860c34ff8966b33f5729d7872a53b3bfa722 (diff) | |
download | gcc-d581d84f919cd269b1fd153d9af51eb9efd10d82.zip gcc-d581d84f919cd269b1fd153d9af51eb9efd10d82.tar.gz gcc-d581d84f919cd269b1fd153d9af51eb9efd10d82.tar.bz2 |
vect: Add helper macros for gather/scatter.
This encapsulates the IFN and the builtin-function way of handling
gather/scatter via three defines:
GATHER_SCATTER_IFN_P
GATHER_SCATTER_LEGACY_P
GATHER_SCATTER_EMULATED_P
and introduces a helper define for SLP operand handling as well.
gcc/ChangeLog:
* tree-vect-slp.cc (GATHER_SCATTER_OFFSET): New define.
(vect_get_and_check_slp_defs): Use.
* tree-vectorizer.h (GATHER_SCATTER_LEGACY_P): New define.
(GATHER_SCATTER_IFN_P): Ditto.
(GATHER_SCATTER_EMULATED_P): Ditto.
* tree-vect-stmts.cc (vectorizable_store): Use.
(vectorizable_load): Use.
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r-- | gcc/tree-vectorizer.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index 80f8853..0f9b529 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -1655,6 +1655,14 @@ struct gather_scatter_info { #define PURE_SLP_STMT(S) ((S)->slp_type == pure_slp) #define STMT_SLP_TYPE(S) (S)->slp_type +#define GATHER_SCATTER_LEGACY_P(info) ((info).decl != NULL_TREE \ + && (info).ifn == IFN_LAST) +#define GATHER_SCATTER_IFN_P(info) ((info).decl == NULL_TREE \ + && (info).ifn != IFN_LAST) +#define GATHER_SCATTER_EMULATED_P(info) ((info).decl == NULL_TREE \ + && (info).ifn == IFN_LAST) + + /* Contains the scalar or vector costs for a vec_info. */ class vector_costs { |