From: Jan Hubicka Date: Wed, 10 Jan 2018 11:02:55 +0000 (+0100) Subject: re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors) X-Git-Tag: basepoints/gcc-9~2107 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=f6aa5171a1a0091bcc3741b1ffff9e8a962e728c;p=gcc.git re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors) PR target/81616 * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. * i386.h (TARGET_USE_GATHER): Define. * x86-tune.def (X86_TUNE_USE_GATHER): New. From-SVN: r256424 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 19eea83b82a7..a30e2854555f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-01-10 Jan Hubicka + + PR target/81616 + * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. + * i386.h (TARGET_USE_GATHER): Define. + * x86-tune.def (X86_TUNE_USE_GATHER): New. + 2018-01-10 Martin Liska PR bootstrap/82831 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8696f931806f..d10b1371bcca 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -38233,7 +38233,7 @@ ix86_vectorize_builtin_gather (const_tree mem_vectype, bool si; enum ix86_builtins code; - if (! TARGET_AVX2) + if (! TARGET_AVX2 || !TARGET_USE_GATHER) return NULL_TREE; if ((TREE_CODE (index_type) != INTEGER_TYPE diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 93b7a2c5915b..6928f809d99e 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -498,6 +498,8 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST]; ix86_tune_features[X86_TUNE_SLOW_PSHUFB] #define TARGET_AVOID_4BYTE_PREFIXES \ ix86_tune_features[X86_TUNE_AVOID_4BYTE_PREFIXES] +#define TARGET_USE_GATHER \ + ix86_tune_features[X86_TUNE_USE_GATHER] #define TARGET_FUSE_CMP_AND_BRANCH_32 \ ix86_tune_features[X86_TUNE_FUSE_CMP_AND_BRANCH_32] #define TARGET_FUSE_CMP_AND_BRANCH_64 \ diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def index 9401d51cdc12..0bc928b8f8ca 100644 --- a/gcc/config/i386/x86-tune.def +++ b/gcc/config/i386/x86-tune.def @@ -399,6 +399,10 @@ DEF_TUNE (X86_TUNE_SLOW_PSHUFB, "slow_pshufb", DEF_TUNE (X86_TUNE_AVOID_4BYTE_PREFIXES, "avoid_4byte_prefixes", m_SILVERMONT | m_INTEL) +/* X86_TUNE_USE_GATHER: Use gather instructions. */ +DEF_TUNE (X86_TUNE_USE_GATHER, "use_gather", + ~(m_ZNVER1 | m_GENERIC)) + /*****************************************************************************/ /* AVX instruction selection tuning (some of SSE flags affects AVX, too) */ /*****************************************************************************/