diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index 017a952a5db..4610bf6d6a4 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -390,18 +390,6 @@ get_intel_cpu (struct __processor_model *cpu_model,
CHECK___builtin_cpu_is ("tremont");
cpu_model->__cpu_type = INTEL_TREMONT;
break;
- case 0x57:
- /* Knights Landing. */
- cpu = "knl";
- CHECK___builtin_cpu_is ("knl");
- cpu_model->__cpu_type = INTEL_KNL;
- break;
- case 0x85:
- /* Knights Mill. */
- cpu = "knm";
- CHECK___builtin_cpu_is ("knm");
- cpu_model->__cpu_type = INTEL_KNM;
- break;
case 0x1a:
case 0x1e:
case 0x1f:
@@ -844,8 +832,6 @@ get_available_features (struct __processor_model *cpu_model,
set_feature (FEATURE_CLFLUSHOPT);
if (ebx & bit_CLWB)
set_feature (FEATURE_CLWB);
- if (ecx & bit_PREFETCHWT1)
- set_feature (FEATURE_PREFETCHWT1);
/* NB: bit_OSPKE indicates that OS supports PKU. */
if (ecx & bit_OSPKE)
set_feature (FEATURE_PKU);
@@ -898,10 +884,6 @@ get_available_features (struct __processor_model *cpu_model,
set_feature (FEATURE_AVX512DQ);
if (ebx & bit_AVX512CD)
set_feature (FEATURE_AVX512CD);
- if (ebx & bit_AVX512PF)
- set_feature (FEATURE_AVX512PF);
- if (ebx & bit_AVX512ER)
- set_feature (FEATURE_AVX512ER);
if (ebx & bit_AVX512IFMA)
set_feature (FEATURE_AVX512IFMA);
if (ecx & bit_AVX512VBMI)
@@ -914,10 +896,6 @@ get_available_features (struct __processor_model *cpu_model,
set_feature (FEATURE_AVX512BITALG);
if (ecx & bit_AVX512VPOPCNTDQ)
set_feature (FEATURE_AVX512VPOPCNTDQ);
- if (edx & bit_AVX5124VNNIW)
- set_feature (FEATURE_AVX5124VNNIW);
- if (edx & bit_AVX5124FMAPS)
- set_feature (FEATURE_AVX5124FMAPS);
if (edx & bit_AVX512VP2INTERSECT)
set_feature (FEATURE_AVX512VP2INTERSECT);
if (edx & bit_AVX512FP16)
diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc
index 77b154663bc..895e5fa662d 100644
--- a/gcc/common/config/i386/i386-common.cc
+++ b/gcc/common/config/i386/i386-common.cc
@@ -64,10 +64,6 @@ along with GCC; see the file COPYING3. If not see
(OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX2_SET)
#define OPTION_MASK_ISA_AVX512CD_SET \
(OPTION_MASK_ISA_AVX512CD | OPTION_MASK_ISA_AVX512F_SET)
-#define OPTION_MASK_ISA_AVX512PF_SET \
- (OPTION_MASK_ISA_AVX512PF | OPTION_MASK_ISA_AVX512F_SET)
-#define OPTION_MASK_ISA_AVX512ER_SET \
- (OPTION_MASK_ISA_AVX512ER | OPTION_MASK_ISA_AVX512F_SET)
#define OPTION_MASK_ISA_AVX512DQ_SET \
(OPTION_MASK_ISA_AVX512DQ | OPTION_MASK_ISA_AVX512F_SET)
#define OPTION_MASK_ISA_AVX512BW_SET \
@@ -79,8 +75,6 @@ along with GCC; see the file COPYING3. If not see
#define OPTION_MASK_ISA2_AVXIFMA_SET OPTION_MASK_ISA2_AVXIFMA
#define OPTION_MASK_ISA_AVX512VBMI_SET \
(OPTION_MASK_ISA_AVX512VBMI | OPTION_MASK_ISA_AVX512BW_SET)
-#define OPTION_MASK_ISA2_AVX5124FMAPS_SET OPTION_MASK_ISA2_AVX5124FMAPS
-#define OPTION_MASK_ISA2_AVX5124VNNIW_SET OPTION_MASK_ISA2_AVX5124VNNIW
#define OPTION_MASK_ISA_AVX512VBMI2_SET \
(OPTION_MASK_ISA_AVX512VBMI2 | OPTION_MASK_ISA_AVX512BW_SET)
#define OPTION_MASK_ISA_AVX512FP16_SET OPTION_MASK_ISA_AVX512BW_SET
@@ -97,7 +91,6 @@ along with GCC; see the file COPYING3. If not see
#define OPTION_MASK_ISA_PRFCHW_SET OPTION_MASK_ISA_PRFCHW
#define OPTION_MASK_ISA_RDSEED_SET OPTION_MASK_ISA_RDSEED
#define OPTION_MASK_ISA_ADX_SET OPTION_MASK_ISA_ADX
-#define OPTION_MASK_ISA_PREFETCHWT1_SET OPTION_MASK_ISA_PREFETCHWT1
#define OPTION_MASK_ISA_CLFLUSHOPT_SET OPTION_MASK_ISA_CLFLUSHOPT
#define OPTION_MASK_ISA_XSAVES_SET \
(OPTION_MASK_ISA_XSAVES | OPTION_MASK_ISA_XSAVE_SET)
@@ -242,14 +235,11 @@ along with GCC; see the file COPYING3. If not see
| OPTION_MASK_ISA2_AVX10_1_256_UNSET)
#define OPTION_MASK_ISA_AVX512F_UNSET \
(OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD_UNSET \
- | OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
| OPTION_MASK_ISA_AVX512DQ_UNSET | OPTION_MASK_ISA_AVX512BW_UNSET \
| OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512IFMA_UNSET \
| OPTION_MASK_ISA_AVX512VNNI_UNSET \
| OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET)
#define OPTION_MASK_ISA_AVX512CD_UNSET OPTION_MASK_ISA_AVX512CD
-#define OPTION_MASK_ISA_AVX512PF_UNSET OPTION_MASK_ISA_AVX512PF
-#define OPTION_MASK_ISA_AVX512ER_UNSET OPTION_MASK_ISA_AVX512ER
#define OPTION_MASK_ISA_AVX512DQ_UNSET OPTION_MASK_ISA_AVX512DQ
#define OPTION_MASK_ISA_AVX512BW_UNSET \
(OPTION_MASK_ISA_AVX512BW | OPTION_MASK_ISA_AVX512VBMI_UNSET \
@@ -258,8 +248,6 @@ along with GCC; see the file COPYING3. If not see
#define OPTION_MASK_ISA_AVX512IFMA_UNSET OPTION_MASK_ISA_AVX512IFMA
#define OPTION_MASK_ISA2_AVXIFMA_UNSET OPTION_MASK_ISA2_AVXIFMA
#define OPTION_MASK_ISA_AVX512VBMI_UNSET OPTION_MASK_ISA_AVX512VBMI
-#define OPTION_MASK_ISA2_AVX5124FMAPS_UNSET OPTION_MASK_ISA2_AVX5124FMAPS
-#define OPTION_MASK_ISA2_AVX5124VNNIW_UNSET OPTION_MASK_ISA2_AVX5124VNNIW
#define OPTION_MASK_ISA_AVX512VBMI2_UNSET OPTION_MASK_ISA_AVX512VBMI2
#define OPTION_MASK_ISA_AVX512FP16_UNSET OPTION_MASK_ISA_AVX512BW_UNSET
#define OPTION_MASK_ISA2_AVX512FP16_UNSET OPTION_MASK_ISA2_AVX512FP16
@@ -272,7 +260,6 @@ along with GCC; see the file COPYING3. If not see
#define OPTION_MASK_ISA_PRFCHW_UNSET OPTION_MASK_ISA_PRFCHW
#define OPTION_MASK_ISA_RDSEED_UNSET OPTION_MASK_ISA_RDSEED
#define OPTION_MASK_ISA_ADX_UNSET OPTION_MASK_ISA_ADX
-#define OPTION_MASK_ISA_PREFETCHWT1_UNSET OPTION_MASK_ISA_PREFETCHWT1
#define OPTION_MASK_ISA_CLFLUSHOPT_UNSET OPTION_MASK_ISA_CLFLUSHOPT
#define OPTION_MASK_ISA_XSAVEC_UNSET OPTION_MASK_ISA_XSAVEC
#define OPTION_MASK_ISA_XSAVES_UNSET OPTION_MASK_ISA_XSAVES
@@ -364,8 +351,6 @@ along with GCC; see the file COPYING3. If not see
#define OPTION_MASK_ISA2_AVX512F_UNSET \
(OPTION_MASK_ISA2_AVX512BW_UNSET \
- | OPTION_MASK_ISA2_AVX5124FMAPS_UNSET \
- | OPTION_MASK_ISA2_AVX5124VNNIW_UNSET \
| OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET)
#define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \
OPTION_MASK_ISA2_SSE_UNSET
@@ -641,32 +626,6 @@ ix86_handle_option (struct gcc_options *opts,
}
return true;
- case OPT_mavx512pf:
- if (value)
- {
- opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512PF_SET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512PF_SET;
- }
- else
- {
- opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512PF_UNSET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512PF_UNSET;
- }
- return true;
-
- case OPT_mavx512er:
- if (value)
- {
- opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512ER_SET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512ER_SET;
- }
- else
- {
- opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_AVX512ER_UNSET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512ER_UNSET;
- }
- return true;
-
case OPT_mrdpid:
if (value)
{
@@ -872,36 +831,6 @@ ix86_handle_option (struct gcc_options *opts,
}
return true;
- case OPT_mavx5124fmaps:
- if (value)
- {
- opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_AVX5124FMAPS_SET;
- opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX5124FMAPS_SET;
- opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512F_SET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512F_SET;
- }
- else
- {
- opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX5124FMAPS_UNSET;
- opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX5124FMAPS_UNSET;
- }
- return true;
-
- case OPT_mavx5124vnniw:
- if (value)
- {
- opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_AVX5124VNNIW_SET;
- opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX5124VNNIW_SET;
- opts->x_ix86_isa_flags |= OPTION_MASK_ISA_AVX512F_SET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_AVX512F_SET;
- }
- else
- {
- opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX5124VNNIW_UNSET;
- opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX5124VNNIW_UNSET;
- }
- return true;
-
case OPT_mavx512vbmi2:
if (value)
{
@@ -1858,19 +1787,6 @@ ix86_handle_option (struct gcc_options *opts,
}
return true;
- case OPT_mprefetchwt1:
- if (value)
- {
- opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PREFETCHWT1_SET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PREFETCHWT1_SET;
- }
- else
- {
- opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_PREFETCHWT1_UNSET;
- opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PREFETCHWT1_UNSET;
- }
- return true;
-
case OPT_mclflushopt:
if (value)
{
@@ -2131,8 +2047,6 @@ const char *const processor_names[] =
"sierraforest",
"grandridge",
"clearwaterforest",
- "knl",
- "knm",
"skylake",
"skylake-avx512",
"cannonlake",
@@ -2307,10 +2221,6 @@ const pta processor_alias_table[] =
M_CPU_TYPE (INTEL_GRANDRIDGE), P_PROC_AVX2},
{"clearwaterforest", PROCESSOR_CLEARWATERFOREST, CPU_HASWELL,
PTA_CLEARWATERFOREST, M_CPU_TYPE (INTEL_CLEARWATERFOREST), P_PROC_AVX2},
- {"knl", PROCESSOR_KNL, CPU_SLM, PTA_KNL,
- M_CPU_TYPE (INTEL_KNL), P_PROC_AVX512F},
- {"knm", PROCESSOR_KNM, CPU_SLM, PTA_KNM,
- M_CPU_TYPE (INTEL_KNM), P_PROC_AVX512F},
{"intel", PROCESSOR_INTEL, CPU_SLM, PTA_NEHALEM,
M_VENDOR (VENDOR_INTEL), P_NONE},
{"geode", PROCESSOR_GEODE, CPU_GEODE,
diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h
index 73131657eab..9edad96d4fd 100644
--- a/gcc/common/config/i386/i386-cpuinfo.h
+++ b/gcc/common/config/i386/i386-cpuinfo.h
@@ -50,12 +50,10 @@ enum processor_types
AMDFAM10H,
AMDFAM15H,
INTEL_SILVERMONT,
- INTEL_KNL,
- AMD_BTVER1,
+ AMD_BTVER1 = 8,
AMD_BTVER2,
AMDFAM17H,
- INTEL_KNM,
- INTEL_GOLDMONT,
+ INTEL_GOLDMONT = 12,
INTEL_GOLDMONT_PLUS,
INTEL_TREMONT,
AMDFAM19H,
@@ -179,13 +177,9 @@ enum processor_features
FEATURE_AVX512BW,
FEATURE_AVX512DQ,
FEATURE_AVX512CD,
- FEATURE_AVX512ER,
- FEATURE_AVX512PF,
- FEATURE_AVX512VBMI,
+ FEATURE_AVX512VBMI = 26,
FEATURE_AVX512IFMA,
- FEATURE_AVX5124VNNIW,
- FEATURE_AVX5124FMAPS,
- FEATURE_AVX512VPOPCNTDQ,
+ FEATURE_AVX512VPOPCNTDQ = 30,
FEATURE_AVX512VBMI2,
FEATURE_GFNI,
FEATURE_VPCLMULQDQ,
@@ -220,8 +214,7 @@ enum processor_features
FEATURE_OSXSAVE,
FEATURE_PCONFIG,
FEATURE_PKU,
- FEATURE_PREFETCHWT1,
- FEATURE_PRFCHW,
+ FEATURE_PRFCHW = 66,
FEATURE_PTWRITE,
FEATURE_RDPID,
FEATURE_RDRND,
diff --git a/gcc/common/config/i386/i386-isas.h b/gcc/common/config/i386/i386-isas.h
index d6deb9a1522..4b4d4b4af99 100644
--- a/gcc/common/config/i386/i386-isas.h
+++ b/gcc/common/config/i386/i386-isas.h
@@ -76,18 +76,10 @@ ISA_NAMES_TABLE_START
"-mavx512dq")
ISA_NAMES_TABLE_ENTRY("avx512cd", FEATURE_AVX512CD, P_NONE,
"-mavx512cd")
- ISA_NAMES_TABLE_ENTRY("avx512er", FEATURE_AVX512ER, P_NONE,
- "-mavx512er")
- ISA_NAMES_TABLE_ENTRY("avx512pf", FEATURE_AVX512PF, P_NONE,
- "-mavx512pf")
ISA_NAMES_TABLE_ENTRY("avx512vbmi", FEATURE_AVX512VBMI, P_NONE,
"-mavx512vbmi")
ISA_NAMES_TABLE_ENTRY("avx512ifma", FEATURE_AVX512IFMA, P_NONE,
"-mavx512ifma")
- ISA_NAMES_TABLE_ENTRY("avx5124vnniw", FEATURE_AVX5124VNNIW, P_NONE,
- "-mavx5124vnniw")
- ISA_NAMES_TABLE_ENTRY("avx5124fmaps", FEATURE_AVX5124FMAPS, P_NONE,
- "-mavx5124fmaps")
ISA_NAMES_TABLE_ENTRY("avx512vpopcntdq", FEATURE_AVX512VPOPCNTDQ,
P_NONE, "-mavx512vpopcntdq")
ISA_NAMES_TABLE_ENTRY("avx512vbmi2", FEATURE_AVX512VBMI2, P_NONE,
@@ -135,8 +127,6 @@ ISA_NAMES_TABLE_START
ISA_NAMES_TABLE_ENTRY("osxsave", FEATURE_OSXSAVE, P_NONE, NULL)
ISA_NAMES_TABLE_ENTRY("pconfig", FEATURE_PCONFIG, P_NONE, "-mpconfig")
ISA_NAMES_TABLE_ENTRY("pku", FEATURE_PKU, P_NONE, "-mpku")
- ISA_NAMES_TABLE_ENTRY("prefetchwt1", FEATURE_PREFETCHWT1, P_NONE,
- "-mprefetchwt1")
ISA_NAMES_TABLE_ENTRY("prfchw", FEATURE_PRFCHW, P_NONE, "-mprfchw")
ISA_NAMES_TABLE_ENTRY("ptwrite", FEATURE_PTWRITE, P_NONE, "-mptwrite")
ISA_NAMES_TABLE_ENTRY("rdpid", FEATURE_RDPID, P_NONE, "-mrdpid")
diff --git a/gcc/config.gcc b/gcc/config.gcc
index cfc2db545d0..a37113bd00a 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -428,12 +428,11 @@ i[34567]86-*-* | x86_64-*-*)
avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
- avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
- shaintrin.h clflushoptintrin.h xsavecintrin.h
- xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
- avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
- avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
- avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
+ avx512cdintrin.h shaintrin.h clflushoptintrin.h
+ xsavecintrin.h xsavesintrin.h avx512dqintrin.h
+ avx512bwintrin.h avx512vlintrin.h avx512vlbwintrin.h
+ avx512vldqintrin.h avx512ifmaintrin.h avx512ifmavlintrin.h
+ avx512vbmiintrin.h avx512vbmivlintrin.h
avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
gfniintrin.h cet.h avx512vbmi2intrin.h
@@ -709,7 +708,7 @@ x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
bdver3 bdver4 znver1 znver2 znver3 znver4 znver5 btver1 btver2 k8 k8-sse3 \
opteron opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 \
atom slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
-silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
+silvermont skylake-avx512 cannonlake icelake-client icelake-server \
skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
nano-x2 eden-x4 nano-x4 lujiazui yongfeng x86-64 x86-64-v2 x86-64-v3 x86-64-v4 \
diff --git a/gcc/config/i386/avx5124fmapsintrin.h b/gcc/config/i386/avx5124fmapsintrin.h
index 842f1fcddb0..860f5abd0a4 100644
--- a/gcc/config/i386/avx5124fmapsintrin.h
+++ b/gcc/config/i386/avx5124fmapsintrin.h
@@ -21,196 +21,4 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
. */
-#if !defined _IMMINTRIN_H_INCLUDED
-# error "Never use directly; include instead."
-#endif
-
-#ifndef _AVX5124FMAPSINTRIN_H_INCLUDED
-#define _AVX5124FMAPSINTRIN_H_INCLUDED
-
-#ifndef __AVX5124FMAPS__
-#pragma GCC push_options
-#pragma GCC target("avx5124fmaps,evex512")
-#define __DISABLE_AVX5124FMAPS__
-#endif /* __AVX5124FMAPS__ */
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_4fmadd_ps (__m512 __A, __m512 __B, __m512 __C,
- __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fmaddps ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F);
-}
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_4fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B,
- __m512 __C, __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fmaddps_mask ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F,
- (__v16sf) __A,
- (__mmask16) __U);
-}
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_4fmadd_ps (__mmask16 __U,
- __m512 __A, __m512 __B, __m512 __C,
- __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fmaddps_mask ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F,
- (__v16sf) _mm512_setzero_ps (),
- (__mmask16) __U);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_4fmadd_ss (__m128 __A, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fmaddss ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_4fmadd_ss (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fmaddss_mask ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F,
- (__v4sf) __A,
- (__mmask8) __U);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_4fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fmaddss_mask ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F,
- (__v4sf) _mm_setzero_ps (),
- (__mmask8) __U);
-}
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_4fnmadd_ps (__m512 __A, __m512 __B, __m512 __C,
- __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fnmaddps ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F);
-}
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_4fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B,
- __m512 __C, __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fnmaddps_mask ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F,
- (__v16sf) __A,
- (__mmask16) __U);
-}
-
-extern __inline __m512
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_4fnmadd_ps (__mmask16 __U,
- __m512 __A, __m512 __B, __m512 __C,
- __m512 __D, __m512 __E, __m128 *__F)
-{
- return (__m512) __builtin_ia32_4fnmaddps_mask ((__v16sf) __B,
- (__v16sf) __C,
- (__v16sf) __D,
- (__v16sf) __E,
- (__v16sf) __A,
- (const __v4sf *) __F,
- (__v16sf) _mm512_setzero_ps (),
- (__mmask16) __U);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_4fnmadd_ss (__m128 __A, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fnmaddss ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_4fnmadd_ss (__m128 __A, __mmask8 __U, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fnmaddss_mask ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F,
- (__v4sf) __A,
- (__mmask8) __U);
-}
-
-extern __inline __m128
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_4fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C,
- __m128 __D, __m128 __E, __m128 *__F)
-{
- return (__m128) __builtin_ia32_4fnmaddss_mask ((__v4sf) __B,
- (__v4sf) __C,
- (__v4sf) __D,
- (__v4sf) __E,
- (__v4sf) __A,
- (const __v4sf *) __F,
- (__v4sf) _mm_setzero_ps (),
- (__mmask8) __U);
-}
-
-#ifdef __DISABLE_AVX5124FMAPS__
-#undef __DISABLE_AVX5124FMAPS__
-#pragma GCC pop_options
-#endif /* __DISABLE_AVX5124FMAPS__ */
-
-#endif /* _AVX5124FMAPSINTRIN_H_INCLUDED */
+#error "AVX5124FMAPS support has been removed since GCC 15."
diff --git a/gcc/config/i386/avx5124vnniwintrin.h b/gcc/config/i386/avx5124vnniwintrin.h
index 57df9b27a2a..13f469cdcf0 100644
--- a/gcc/config/i386/avx5124vnniwintrin.h
+++ b/gcc/config/i386/avx5124vnniwintrin.h
@@ -21,112 +21,4 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
. */
-#if !defined _IMMINTRIN_H_INCLUDED
-# error "Never use directly; include instead."
-#endif
-
-#ifndef _AVX5124VNNIWINTRIN_H_INCLUDED
-#define _AVX5124VNNIWINTRIN_H_INCLUDED
-
-#ifndef __AVX5124VNNIW__
-#pragma GCC push_options
-#pragma GCC target("avx5124vnniw,evex512")
-#define __DISABLE_AVX5124VNNIW__
-#endif /* __AVX5124VNNIW__ */
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_4dpwssd_epi32 (__m512i __A, __m512i __B, __m512i __C,
- __m512i __D, __m512i __E, __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssd ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F);
-}
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_4dpwssd_epi32 (__m512i __A, __mmask16 __U, __m512i __B,
- __m512i __C, __m512i __D, __m512i __E,
- __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssd_mask ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F,
- (__v16si) __A,
- (__mmask16) __U);
-}
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_4dpwssd_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
- __m512i __C, __m512i __D, __m512i __E,
- __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssd_mask ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F,
- (__v16si) _mm512_setzero_ps (),
- (__mmask16) __U);
-}
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_4dpwssds_epi32 (__m512i __A, __m512i __B, __m512i __C,
- __m512i __D, __m512i __E, __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssds ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F);
-}
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_4dpwssds_epi32 (__m512i __A, __mmask16 __U, __m512i __B,
- __m512i __C, __m512i __D, __m512i __E,
- __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssds_mask ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F,
- (__v16si) __A,
- (__mmask16) __U);
-}
-
-extern __inline __m512i
-__attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_4dpwssds_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
- __m512i __C, __m512i __D, __m512i __E,
- __m128i *__F)
-{
- return (__m512i) __builtin_ia32_vp4dpwssds_mask ((__v16si) __B,
- (__v16si) __C,
- (__v16si) __D,
- (__v16si) __E,
- (__v16si) __A,
- (const __v4si *) __F,
- (__v16si) _mm512_setzero_ps (),
- (__mmask16) __U);
-}
-
-#ifdef __DISABLE_AVX5124VNNIW__
-#undef __DISABLE_AVX5124VNNIW__
-#pragma GCC pop_options
-#endif /* __DISABLE_AVX5124VNNIW__ */
-
-#endif /* _AVX5124VNNIWINTRIN_H_INCLUDED */
+#error "AVX5124VNNIW support has been removed since GCC 15."
diff --git a/gcc/config/i386/avx512erintrin.h b/gcc/config/i386/avx512erintrin.h
index b3d8a64ee54..d8c62c90586 100644
--- a/gcc/config/i386/avx512erintrin.h
+++ b/gcc/config/i386/avx512erintrin.h
@@ -21,516 +21,4 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
. */
-#ifndef _IMMINTRIN_H_INCLUDED
-#error "Never use directly; include instead."
-#endif
-
-#ifndef _AVX512ERINTRIN_H_INCLUDED
-#define _AVX512ERINTRIN_H_INCLUDED
-
-#ifndef __AVX512ER__
-#pragma GCC push_options
-#pragma GCC target("avx512er,evex512")
-#define __DISABLE_AVX512ER__
-#endif /* __AVX512ER__ */
-
-/* Internal data types for implementing the intrinsics. */
-typedef double __v8df __attribute__ ((__vector_size__ (64)));
-typedef float __v16sf __attribute__ ((__vector_size__ (64)));
-
-/* The Intel API is flexible enough that we must allow aliasing with other
- vector types, and their scalar components. */
-typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
-typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
-
-typedef unsigned char __mmask8;
-typedef unsigned short __mmask16;
-
-#ifdef __OPTIMIZE__
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_exp2a23_round_pd (__m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_exp2pd_mask ((__v8df) __A,
- (__v8df) _mm512_undefined_pd (),
- (__mmask8) -1, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_exp2a23_round_pd (__m512d __W, __mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_exp2pd_mask ((__v8df) __A,
- (__v8df) __W,
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_exp2a23_round_pd (__mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_exp2pd_mask ((__v8df) __A,
- (__v8df) _mm512_setzero_pd (),
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_exp2a23_round_ps (__m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_exp2ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_undefined_ps (),
- (__mmask16) -1, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_exp2a23_round_ps (__m512 __W, __mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_exp2ps_mask ((__v16sf) __A,
- (__v16sf) __W,
- (__mmask16) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_exp2a23_round_ps (__mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_exp2ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_setzero_ps (),
- (__mmask16) __U, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_rcp28_round_pd (__m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rcp28pd_mask ((__v8df) __A,
- (__v8df) _mm512_undefined_pd (),
- (__mmask8) -1, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_rcp28_round_pd (__m512d __W, __mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rcp28pd_mask ((__v8df) __A,
- (__v8df) __W,
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_rcp28_round_pd (__mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rcp28pd_mask ((__v8df) __A,
- (__v8df) _mm512_setzero_pd (),
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_rcp28_round_ps (__m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rcp28ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_undefined_ps (),
- (__mmask16) -1, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_rcp28_round_ps (__m512 __W, __mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rcp28ps_mask ((__v16sf) __A,
- (__v16sf) __W,
- (__mmask16) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_rcp28_round_ps (__mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rcp28ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_setzero_ps (),
- (__mmask16) __U, __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rcp28_round_sd (__m128d __A, __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rcp28sd_round ((__v2df) __B,
- (__v2df) __A,
- __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_rcp28_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
- __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rcp28sd_mask_round ((__v2df) __B,
- (__v2df) __A,
- (__v2df) __W,
- __U,
- __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_rcp28_round_sd (__mmask8 __U, __m128d __A, __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rcp28sd_mask_round ((__v2df) __B,
- (__v2df) __A,
- (__v2df)
- _mm_setzero_pd (),
- __U,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rcp28_round_ss (__m128 __A, __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rcp28ss_round ((__v4sf) __B,
- (__v4sf) __A,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_rcp28_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
- __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rcp28ss_mask_round ((__v4sf) __B,
- (__v4sf) __A,
- (__v4sf) __W,
- __U,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_rcp28_round_ss (__mmask8 __U, __m128 __A, __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rcp28ss_mask_round ((__v4sf) __B,
- (__v4sf) __A,
- (__v4sf)
- _mm_setzero_ps (),
- __U,
- __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_rsqrt28_round_pd (__m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rsqrt28pd_mask ((__v8df) __A,
- (__v8df) _mm512_undefined_pd (),
- (__mmask8) -1, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_rsqrt28_round_pd (__m512d __W, __mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rsqrt28pd_mask ((__v8df) __A,
- (__v8df) __W,
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_rsqrt28_round_pd (__mmask8 __U, __m512d __A, int __R)
-{
- return (__m512d) __builtin_ia32_rsqrt28pd_mask ((__v8df) __A,
- (__v8df) _mm512_setzero_pd (),
- (__mmask8) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_rsqrt28_round_ps (__m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rsqrt28ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_undefined_ps (),
- (__mmask16) -1, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_rsqrt28_round_ps (__m512 __W, __mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rsqrt28ps_mask ((__v16sf) __A,
- (__v16sf) __W,
- (__mmask16) __U, __R);
-}
-
-extern __inline __m512
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_maskz_rsqrt28_round_ps (__mmask16 __U, __m512 __A, int __R)
-{
- return (__m512) __builtin_ia32_rsqrt28ps_mask ((__v16sf) __A,
- (__v16sf) _mm512_setzero_ps (),
- (__mmask16) __U, __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rsqrt28_round_sd (__m128d __A, __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rsqrt28sd_round ((__v2df) __B,
- (__v2df) __A,
- __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_rsqrt28_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
- __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rsqrt28sd_mask_round ((__v2df) __B,
- (__v2df) __A,
- (__v2df) __W,
- __U,
- __R);
-}
-
-extern __inline __m128d
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_rsqrt28_round_sd (__mmask8 __U, __m128d __A, __m128d __B, int __R)
-{
- return (__m128d) __builtin_ia32_rsqrt28sd_mask_round ((__v2df) __B,
- (__v2df) __A,
- (__v2df)
- _mm_setzero_pd (),
- __U,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_rsqrt28_round_ss (__m128 __A, __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rsqrt28ss_round ((__v4sf) __B,
- (__v4sf) __A,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_mask_rsqrt28_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
- __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rsqrt28ss_mask_round ((__v4sf) __B,
- (__v4sf) __A,
- (__v4sf) __W,
- __U,
- __R);
-}
-
-extern __inline __m128
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm_maskz_rsqrt28_round_ss (__mmask8 __U, __m128 __A, __m128 __B, int __R)
-{
- return (__m128) __builtin_ia32_rsqrt28ss_mask_round ((__v4sf) __B,
- (__v4sf) __A,
- (__v4sf)
- _mm_setzero_ps (),
- __U,
- __R);
-}
-
-#else
-#define _mm512_exp2a23_round_pd(A, C) \
- __builtin_ia32_exp2pd_mask(A, (__v8df)_mm512_setzero_pd(), -1, C)
-
-#define _mm512_mask_exp2a23_round_pd(W, U, A, C) \
- __builtin_ia32_exp2pd_mask(A, W, U, C)
-
-#define _mm512_maskz_exp2a23_round_pd(U, A, C) \
- __builtin_ia32_exp2pd_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
-
-#define _mm512_exp2a23_round_ps(A, C) \
- __builtin_ia32_exp2ps_mask(A, (__v16sf)_mm512_setzero_ps(), -1, C)
-
-#define _mm512_mask_exp2a23_round_ps(W, U, A, C) \
- __builtin_ia32_exp2ps_mask(A, W, U, C)
-
-#define _mm512_maskz_exp2a23_round_ps(U, A, C) \
- __builtin_ia32_exp2ps_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
-
-#define _mm512_rcp28_round_pd(A, C) \
- __builtin_ia32_rcp28pd_mask(A, (__v8df)_mm512_setzero_pd(), -1, C)
-
-#define _mm512_mask_rcp28_round_pd(W, U, A, C) \
- __builtin_ia32_rcp28pd_mask(A, W, U, C)
-
-#define _mm512_maskz_rcp28_round_pd(U, A, C) \
- __builtin_ia32_rcp28pd_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
-
-#define _mm512_rcp28_round_ps(A, C) \
- __builtin_ia32_rcp28ps_mask(A, (__v16sf)_mm512_setzero_ps(), -1, C)
-
-#define _mm512_mask_rcp28_round_ps(W, U, A, C) \
- __builtin_ia32_rcp28ps_mask(A, W, U, C)
-
-#define _mm512_maskz_rcp28_round_ps(U, A, C) \
- __builtin_ia32_rcp28ps_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
-
-#define _mm512_rsqrt28_round_pd(A, C) \
- __builtin_ia32_rsqrt28pd_mask(A, (__v8df)_mm512_setzero_pd(), -1, C)
-
-#define _mm512_mask_rsqrt28_round_pd(W, U, A, C) \
- __builtin_ia32_rsqrt28pd_mask(A, W, U, C)
-
-#define _mm512_maskz_rsqrt28_round_pd(U, A, C) \
- __builtin_ia32_rsqrt28pd_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
-
-#define _mm512_rsqrt28_round_ps(A, C) \
- __builtin_ia32_rsqrt28ps_mask(A, (__v16sf)_mm512_setzero_ps(), -1, C)
-
-#define _mm512_mask_rsqrt28_round_ps(W, U, A, C) \
- __builtin_ia32_rsqrt28ps_mask(A, W, U, C)
-
-#define _mm512_maskz_rsqrt28_round_ps(U, A, C) \
- __builtin_ia32_rsqrt28ps_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
-
-#define _mm_rcp28_round_sd(A, B, R) \
- __builtin_ia32_rcp28sd_round(A, B, R)
-
-#define _mm_mask_rcp28_round_sd(W, U, A, B, R) \
- __builtin_ia32_rcp28sd_mask_round ((A), (B), (W), (U), (R))
-
-#define _mm_maskz_rcp28_round_sd(U, A, B, R) \
- __builtin_ia32_rcp28sd_mask_round ((A), (B), (__v2df) _mm_setzero_pd (), \
- (U), (R))
-
-#define _mm_rcp28_round_ss(A, B, R) \
- __builtin_ia32_rcp28ss_round(A, B, R)
-
-#define _mm_mask_rcp28_round_ss(W, U, A, B, R) \
- __builtin_ia32_rcp28ss_mask_round ((A), (B), (W), (U), (R))
-
-#define _mm_maskz_rcp28_round_ss(U, A, B, R) \
- __builtin_ia32_rcp28ss_mask_round ((A), (B), (__v4sf) _mm_setzero_ps (), \
- (U), (R))
-
-#define _mm_rsqrt28_round_sd(A, B, R) \
- __builtin_ia32_rsqrt28sd_round(A, B, R)
-
-#define _mm_mask_rsqrt28_round_sd(W, U, A, B, R) \
- __builtin_ia32_rsqrt28sd_mask_round ((A), (B), (W), (U), (R))
-
-#define _mm_maskz_rsqrt28_round_sd(U, A, B, R) \
- __builtin_ia32_rsqrt28sd_mask_round ((A), (B), (__v2df) _mm_setzero_pd (),\
- (U), (R))
-
-#define _mm_rsqrt28_round_ss(A, B, R) \
- __builtin_ia32_rsqrt28ss_round(A, B, R)
-
-#define _mm_mask_rsqrt28_round_ss(W, U, A, B, R) \
- __builtin_ia32_rsqrt28ss_mask_round ((A), (B), (W), (U), (R))
-
-#define _mm_maskz_rsqrt28_round_ss(U, A, B, R) \
- __builtin_ia32_rsqrt28ss_mask_round ((A), (B), (__v4sf) _mm_setzero_ps (),\
- (U), (R))
-
-#endif
-
-#define _mm_mask_rcp28_sd(W, U, A, B)\
- _mm_mask_rcp28_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_maskz_rcp28_sd(U, A, B)\
- _mm_maskz_rcp28_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_mask_rcp28_ss(W, U, A, B)\
- _mm_mask_rcp28_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_maskz_rcp28_ss(U, A, B)\
- _mm_maskz_rcp28_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_mask_rsqrt28_sd(W, U, A, B)\
- _mm_mask_rsqrt28_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_maskz_rsqrt28_sd(U, A, B)\
- _mm_maskz_rsqrt28_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_mask_rsqrt28_ss(W, U, A, B)\
- _mm_mask_rsqrt28_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_maskz_rsqrt28_ss(U, A, B)\
- _mm_maskz_rsqrt28_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_exp2a23_pd(A) \
- _mm512_exp2a23_round_pd(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_exp2a23_pd(W, U, A) \
- _mm512_mask_exp2a23_round_pd(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_exp2a23_pd(U, A) \
- _mm512_maskz_exp2a23_round_pd(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_exp2a23_ps(A) \
- _mm512_exp2a23_round_ps(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_exp2a23_ps(W, U, A) \
- _mm512_mask_exp2a23_round_ps(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_exp2a23_ps(U, A) \
- _mm512_maskz_exp2a23_round_ps(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_rcp28_pd(A) \
- _mm512_rcp28_round_pd(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_rcp28_pd(W, U, A) \
- _mm512_mask_rcp28_round_pd(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_rcp28_pd(U, A) \
- _mm512_maskz_rcp28_round_pd(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_rcp28_ps(A) \
- _mm512_rcp28_round_ps(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_rcp28_ps(W, U, A) \
- _mm512_mask_rcp28_round_ps(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_rcp28_ps(U, A) \
- _mm512_maskz_rcp28_round_ps(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_rsqrt28_pd(A) \
- _mm512_rsqrt28_round_pd(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_rsqrt28_pd(W, U, A) \
- _mm512_mask_rsqrt28_round_pd(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_rsqrt28_pd(U, A) \
- _mm512_maskz_rsqrt28_round_pd(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_rsqrt28_ps(A) \
- _mm512_rsqrt28_round_ps(A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_mask_rsqrt28_ps(W, U, A) \
- _mm512_mask_rsqrt28_round_ps(W, U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm512_maskz_rsqrt28_ps(U, A) \
- _mm512_maskz_rsqrt28_round_ps(U, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_rcp28_sd(A, B) \
- __builtin_ia32_rcp28sd_round(B, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_rcp28_ss(A, B) \
- __builtin_ia32_rcp28ss_round(B, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_rsqrt28_sd(A, B) \
- __builtin_ia32_rsqrt28sd_round(B, A, _MM_FROUND_CUR_DIRECTION)
-
-#define _mm_rsqrt28_ss(A, B) \
- __builtin_ia32_rsqrt28ss_round(B, A, _MM_FROUND_CUR_DIRECTION)
-
-#ifdef __DISABLE_AVX512ER__
-#undef __DISABLE_AVX512ER__
-#pragma GCC pop_options
-#endif /* __DISABLE_AVX512ER__ */
-
-#endif /* _AVX512ERINTRIN_H_INCLUDED */
+#error "AVX512ER support has been removed since GCC 15."
diff --git a/gcc/config/i386/avx512pfintrin.h b/gcc/config/i386/avx512pfintrin.h
index 5ad87d13eba..7a4959b38d3 100644
--- a/gcc/config/i386/avx512pfintrin.h
+++ b/gcc/config/i386/avx512pfintrin.h
@@ -21,249 +21,5 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
. */
-#ifndef _IMMINTRIN_H_INCLUDED
-#error "Never use directly; include instead."
-#endif
+#error "AVX512PF support has been removed since GCC 15."
-#ifndef _AVX512PFINTRIN_H_INCLUDED
-#define _AVX512PFINTRIN_H_INCLUDED
-
-#ifndef __AVX512PF__
-#pragma GCC push_options
-#pragma GCC target("avx512pf,evex512")
-#define __DISABLE_AVX512PF__
-#endif /* __AVX512PF__ */
-
-/* Internal data types for implementing the intrinsics. */
-typedef long long __v8di __attribute__ ((__vector_size__ (64)));
-typedef int __v16si __attribute__ ((__vector_size__ (64)));
-
-/* The Intel API is flexible enough that we must allow aliasing with other
- vector types, and their scalar components. */
-typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__));
-
-typedef unsigned char __mmask8;
-typedef unsigned short __mmask16;
-
-#ifdef __OPTIMIZE__
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32gather_pd (__m256i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32gather_ps (__m512i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdps ((__mmask16) 0xFFFF, (__v16si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32gather_pd (__m256i __index, __mmask8 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd (__mask, (__v8si) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32gather_ps (__m512i __index, __mmask16 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdps (__mask, (__v16si) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i64gather_pd (__m512i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfqpd ((__mmask8) 0xFF, (__v8di) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i64gather_ps (__m512i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfqps ((__mmask8) 0xFF, (__v8di) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i64gather_pd (__m512i __index, __mmask8 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfqpd (__mask, (__v8di) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i64gather_ps (__m512i __index, __mmask8 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfqps (__mask, (__v8di) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32scatter_pd (void *__addr, __m256i __index, int __scale,
- int __hint)
-{
- __builtin_ia32_scatterpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32scatter_ps (void *__addr, __m512i __index, int __scale,
- int __hint)
-{
- __builtin_ia32_scatterpfdps ((__mmask16) 0xFFFF, (__v16si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32scatter_pd (void *__addr, __mmask8 __mask,
- __m256i __index, int __scale, int __hint)
-{
- __builtin_ia32_scatterpfdpd (__mask, (__v8si) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32scatter_ps (void *__addr, __mmask16 __mask,
- __m512i __index, int __scale, int __hint)
-{
- __builtin_ia32_scatterpfdps (__mask, (__v16si) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i64scatter_pd (void *__addr, __m512i __index, int __scale,
- int __hint)
-{
- __builtin_ia32_scatterpfqpd ((__mmask8) 0xFF, (__v8di) __index,__addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i64scatter_ps (void *__addr, __m512i __index, int __scale,
- int __hint)
-{
- __builtin_ia32_scatterpfqps ((__mmask8) 0xFF, (__v8di) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i64scatter_pd (void *__addr, __mmask8 __mask,
- __m512i __index, int __scale, int __hint)
-{
- __builtin_ia32_scatterpfqpd (__mask, (__v8di) __index, __addr, __scale,
- __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i64scatter_ps (void *__addr, __mmask8 __mask,
- __m512i __index, int __scale, int __hint)
-{
- __builtin_ia32_scatterpfqps (__mask, (__v8di) __index, __addr, __scale,
- __hint);
-}
-
-#else
-#define _mm512_prefetch_i32gather_pd(INDEX, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfdpd ((__mmask8)0xFF, (__v8si)(__m256i) (INDEX), \
- (void const *) (ADDR), (int) (SCALE), \
- (int) (HINT))
-
-#define _mm512_prefetch_i32gather_ps(INDEX, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfdps ((__mmask16)0xFFFF, (__v16si)(__m512i) (INDEX), \
- (void const *) (ADDR), (int) (SCALE), \
- (int) (HINT))
-
-#define _mm512_mask_prefetch_i32gather_pd(INDEX, MASK, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfdpd ((__mmask8) (MASK), (__v8si)(__m256i) (INDEX), \
- (void const *) (ADDR), (int) (SCALE), \
- (int) (HINT))
-
-#define _mm512_mask_prefetch_i32gather_ps(INDEX, MASK, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfdps ((__mmask16) (MASK), (__v16si)(__m512i) (INDEX),\
- (void const *) (ADDR), (int) (SCALE), \
- (int) (HINT))
-
-#define _mm512_prefetch_i64gather_pd(INDEX, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfqpd ((__mmask8)0xFF, (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_prefetch_i64gather_ps(INDEX, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfqps ((__mmask8)0xFF, (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i64gather_pd(INDEX, MASK, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfqpd ((__mmask8) (MASK), (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i64gather_ps(INDEX, MASK, ADDR, SCALE, HINT) \
- __builtin_ia32_gatherpfqps ((__mmask8) (MASK), (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_prefetch_i32scatter_pd(ADDR, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfdpd ((__mmask8)0xFF, (__v8si)(__m256i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_prefetch_i32scatter_ps(ADDR, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfdps ((__mmask16)0xFFFF, (__v16si)(__m512i) (INDEX),\
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i32scatter_pd(ADDR, MASK, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfdpd ((__mmask8) (MASK), (__v8si)(__m256i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i32scatter_ps(ADDR, MASK, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfdps ((__mmask16) (MASK), \
- (__v16si)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_prefetch_i64scatter_pd(ADDR, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfqpd ((__mmask8)0xFF, (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_prefetch_i64scatter_ps(ADDR, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfqps ((__mmask8)0xFF, (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i64scatter_pd(ADDR, MASK, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfqpd ((__mmask8) (MASK), (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-
-#define _mm512_mask_prefetch_i64scatter_ps(ADDR, MASK, INDEX, SCALE, HINT) \
- __builtin_ia32_scatterpfqps ((__mmask8) (MASK), (__v8di)(__m512i) (INDEX), \
- (void *) (ADDR), (int) (SCALE), (int) (HINT))
-#endif
-
-#ifdef __DISABLE_AVX512PF__
-#undef __DISABLE_AVX512PF__
-#pragma GCC pop_options
-#endif /* __DISABLE_AVX512PF__ */
-
-#endif /* _AVX512PFINTRIN_H_INCLUDED */
diff --git a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h
index efb05f9abd7..1e8060e5cff 100644
--- a/gcc/config/i386/cpuid.h
+++ b/gcc/config/i386/cpuid.h
@@ -88,15 +88,12 @@
#define bit_AVX512IFMA (1 << 21)
#define bit_CLFLUSHOPT (1 << 23)
#define bit_CLWB (1 << 24)
-#define bit_AVX512PF (1 << 26)
-#define bit_AVX512ER (1 << 27)
#define bit_AVX512CD (1 << 28)
#define bit_SHA (1 << 29)
#define bit_AVX512BW (1 << 30)
#define bit_AVX512VL (1u << 31)
/* %ecx */
-#define bit_PREFETCHWT1 (1 << 0)
#define bit_AVX512VBMI (1 << 1)
#define bit_PKU (1 << 3)
#define bit_OSPKE (1 << 4)
@@ -117,8 +114,6 @@
#define bit_ENQCMD (1 << 29)
/* %edx */
-#define bit_AVX5124VNNIW (1 << 2)
-#define bit_AVX5124FMAPS (1 << 3)
#define bit_UINTR (1 << 5)
#define bit_AVX512VP2INTERSECT (1 << 8)
#define bit_SERIALIZE (1 << 14)
diff --git a/gcc/config/i386/driver-i386.cc b/gcc/config/i386/driver-i386.cc
index bb53af4b203..0176d8b6cd2 100644
--- a/gcc/config/i386/driver-i386.cc
+++ b/gcc/config/i386/driver-i386.cc
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "diagnostic.h"
const char *host_detect_local_cpu (int argc, const char **argv);
@@ -646,12 +647,13 @@ const char *host_detect_local_cpu (int argc, const char **argv)
/* Assume Cannon Lake. */
else if (has_feature (FEATURE_AVX512VBMI))
cpu = "cannonlake";
- /* Assume Knights Mill. */
- else if (has_feature (FEATURE_AVX5124VNNIW))
- cpu = "knm";
- /* Assume Knights Landing. */
- else if (has_feature (FEATURE_AVX512ER))
- cpu = "knl";
+ /* Assume Xeon Phi Processors. Support has been removed
+ since GCC 15. */
+ else if (!has_feature (FEATURE_AVX512VL))
+ error ("Xeon Phi ISA support has been removed since "
+ "GCC 15, use GCC 14 for the Xeon Phi ISAs or "
+ "%<-march=broadwell%> for all the other ISAs "
+ "supported on this machine.");
/* Assume Skylake with AVX-512. */
else
cpu = "skylake-avx512";
@@ -901,11 +903,6 @@ const char *host_detect_local_cpu (int argc, const char **argv)
avoid unnecessary warnings when building librarys. */
else if (isa_names_table[i].feature != FEATURE_AVX10_1_256
&& isa_names_table[i].feature != FEATURE_AVX10_1_512
- && isa_names_table[i].feature != FEATURE_AVX512PF
- && isa_names_table[i].feature != FEATURE_AVX512ER
- && isa_names_table[i].feature != FEATURE_AVX5124FMAPS
- && isa_names_table[i].feature != FEATURE_AVX5124VNNIW
- && isa_names_table[i].feature != FEATURE_PREFETCHWT1
&& check_avx512_features (cpu_model, cpu_features2,
isa_names_table[i].feature))
options = concat (options, neg_option,
diff --git a/gcc/config/i386/i386-builtin-types.def b/gcc/config/i386/i386-builtin-types.def
index 183029f2c75..5e1245174a3 100644
--- a/gcc/config/i386/i386-builtin-types.def
+++ b/gcc/config/i386/i386-builtin-types.def
@@ -564,15 +564,6 @@ DEF_FUNCTION_TYPE (VOID, UNSIGNED, UNSIGNED)
DEF_FUNCTION_TYPE (VOID, UNSIGNED, UNSIGNED, UNSIGNED)
DEF_FUNCTION_TYPE (VOID, PV8DI, V8DI)
-DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, V16SF, V16SF, PCV4SF, V16SF, UHI)
-DEF_FUNCTION_TYPE (V16SF, V16SF, V16SF, V16SF, V16SF, V16SF, PCV4SF)
-DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, V4SF, V4SF, PCV4SF)
-DEF_FUNCTION_TYPE (V4SF, V4SF, V4SF, V4SF, V4SF, V4SF, PCV4SF, V4SF, UQI)
-
-DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, V16SI, V16SI, PCV4SI, V16SI, UHI)
-DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI, V16SI, V16SI, V16SI, PCV4SI)
-
-
# Instructions returning mask
DEF_FUNCTION_TYPE (UCHAR, UQI, UQI, PUCHAR)
DEF_FUNCTION_TYPE (UCHAR, UQI, UQI)
@@ -1147,9 +1138,6 @@ DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V4SI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V4DI, V4DI, INT)
DEF_FUNCTION_TYPE (VOID, PVOID, QI, V2DI, V2DI, INT)
-DEF_FUNCTION_TYPE (VOID, QI, V8SI, PCVOID, INT, INT)
-DEF_FUNCTION_TYPE (VOID, HI, V16SI, PCVOID, INT, INT)
-DEF_FUNCTION_TYPE (VOID, QI, V8DI, PCVOID, INT, INT)
DEF_FUNCTION_TYPE (VOID, PUDI, V8HI, UQI)
DEF_FUNCTION_TYPE (VOID, PV16QI, V16HI, UHI)
diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def
index 927a79bb825..a28c48c7566 100644
--- a/gcc/config/i386/i386-builtin.def
+++ b/gcc/config/i386/i386-builtin.def
@@ -1571,7 +1571,6 @@ BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_copysignv16sf
BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_copysignv8df3, "__builtin_ia32_copysignpd512", IX86_BUILTIN_CPYSGNPD512, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF)
BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512f_sqrtv8df2, "__builtin_ia32_sqrtpd512", IX86_BUILTIN_SQRTPD512, UNKNOWN, (int) V8DF_FTYPE_V8DF)
BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_sqrtv16sf2, "__builtin_ia32_sqrtps512", IX86_BUILTIN_SQRTPS_NR512, UNKNOWN, (int) V16SF_FTYPE_V16SF)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_exp2v16sf, "__builtin_ia32_exp2ps", IX86_BUILTIN_EXP2PS, UNKNOWN, (int) V16SF_FTYPE_V16SF)
BDESC (0, OPTION_MASK_ISA2_AVX512FP16 | OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512bw_rndscalev32hf, "__builtin_ia32_floorph512", IX86_BUILTIN_FLOORPH512, (enum rtx_code) ROUND_FLOOR, (int) V32HF_FTYPE_V32HF_ROUND)
BDESC (0, OPTION_MASK_ISA2_AVX512FP16 | OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512bw_rndscalev32hf, "__builtin_ia32_ceilph512", IX86_BUILTIN_CEILPH512, (enum rtx_code) ROUND_CEIL, (int) V32HF_FTYPE_V32HF_ROUND)
BDESC (0, OPTION_MASK_ISA2_AVX512FP16 | OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512bw_rndscalev32hf, "__builtin_ia32_truncph512", IX86_BUILTIN_TRUNCPH512, (enum rtx_code) ROUND_TRUNC, (int) V32HF_FTYPE_V32HF_ROUND)
@@ -2813,20 +2812,6 @@ BDESC (OPTION_MASK_ISA_AVX512BITALG, OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512vl
BDESC (OPTION_MASK_ISA_AVX512BITALG | OPTION_MASK_ISA_AVX512VL, 0, CODE_FOR_avx512vl_vpshufbitqmbv32qi_mask, "__builtin_ia32_vpshufbitqmb256_mask", IX86_BUILTIN_VPSHUFBITQMB256_MASK, UNKNOWN, (int) USI_FTYPE_V32QI_V32QI_USI)
BDESC (OPTION_MASK_ISA_AVX512BITALG | OPTION_MASK_ISA_AVX512VL, 0, CODE_FOR_avx512vl_vpshufbitqmbv16qi_mask, "__builtin_ia32_vpshufbitqmb128_mask", IX86_BUILTIN_VPSHUFBITQMB128_MASK, UNKNOWN, (int) UHI_FTYPE_V16QI_V16QI_UHI)
-/* AVX512_4FMAPS and AVX512_4VNNIW builtins with variable number of arguments. Defined in additional ix86_isa_flags2. */
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fmaddps_mask, "__builtin_ia32_4fmaddps_mask", IX86_BUILTIN_4FMAPS_MASK, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fmaddps, "__builtin_ia32_4fmaddps", IX86_BUILTIN_4FMAPS, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fmaddss, "__builtin_ia32_4fmaddss", IX86_BUILTIN_4FMASS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fmaddss_mask, "__builtin_ia32_4fmaddss_mask", IX86_BUILTIN_4FMASS_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fnmaddps_mask, "__builtin_ia32_4fnmaddps_mask", IX86_BUILTIN_4FNMAPS_MASK, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fnmaddps, "__builtin_ia32_4fnmaddps", IX86_BUILTIN_4FNMAPS, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fnmaddss, "__builtin_ia32_4fnmaddss", IX86_BUILTIN_4FNMASS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF)
-BDESC (0, OPTION_MASK_ISA2_AVX5124FMAPS, CODE_FOR_avx5124fmaddps_4fnmaddss_mask, "__builtin_ia32_4fnmaddss_mask", IX86_BUILTIN_4FNMASS_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124VNNIW, CODE_FOR_avx5124vnniw_vp4dpwssd, "__builtin_ia32_vp4dpwssd", IX86_BUILTIN_4DPWSSD, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124VNNIW, CODE_FOR_avx5124vnniw_vp4dpwssd_mask, "__builtin_ia32_vp4dpwssd_mask", IX86_BUILTIN_4DPWSSD_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124VNNIW, CODE_FOR_avx5124vnniw_vp4dpwssds, "__builtin_ia32_vp4dpwssds", IX86_BUILTIN_4DPWSSDS, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI)
-BDESC (0, OPTION_MASK_ISA2_AVX5124VNNIW, CODE_FOR_avx5124vnniw_vp4dpwssds_mask, "__builtin_ia32_vp4dpwssds_mask", IX86_BUILTIN_4DPWSSDS_MASK, UNKNOWN, (int) V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI)
-
/* RDPID. */
BDESC (0, OPTION_MASK_ISA2_RDPID, CODE_FOR_rdpid, "__builtin_ia32_rdpid", IX86_BUILTIN_RDPID, UNKNOWN, (int) UNSIGNED_FTYPE_VOID)
@@ -3194,22 +3179,6 @@ BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512f_fnmsu
BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512f_fnmsub_v16sf_mask3_round, "__builtin_ia32_vfnmsubps512_mask3", IX86_BUILTIN_VFNMSUBPS512_MASK3, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_HI_INT)
BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512f_fnmsub_v16sf_maskz_round, "__builtin_ia32_vfnmsubps512_maskz", IX86_BUILTIN_VFNMSUBPS512_MASKZ, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_V16SF_HI_INT)
-/* AVX512ER */
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_exp2v8df_mask_round, "__builtin_ia32_exp2pd_mask", IX86_BUILTIN_EXP2PD_MASK, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_QI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_exp2v16sf_mask_round, "__builtin_ia32_exp2ps_mask", IX86_BUILTIN_EXP2PS_MASK, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_HI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_rcp28v8df_mask_round, "__builtin_ia32_rcp28pd_mask", IX86_BUILTIN_RCP28PD, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_QI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_rcp28v16sf_mask_round, "__builtin_ia32_rcp28ps_mask", IX86_BUILTIN_RCP28PS, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_HI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrcp28v2df_round, "__builtin_ia32_rcp28sd_round", IX86_BUILTIN_RCP28SD, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrcp28v2df_mask_round, "__builtin_ia32_rcp28sd_mask_round", IX86_BUILTIN_RCP28SD_MASK_ROUND, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrcp28v4sf_round, "__builtin_ia32_rcp28ss_round", IX86_BUILTIN_RCP28SS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrcp28v4sf_mask_round, "__builtin_ia32_rcp28ss_mask_round", IX86_BUILTIN_RCP28SS_MASK_ROUND, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_rsqrt28v8df_mask_round, "__builtin_ia32_rsqrt28pd_mask", IX86_BUILTIN_RSQRT28PD, UNKNOWN, (int) V8DF_FTYPE_V8DF_V8DF_QI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_rsqrt28v16sf_mask_round, "__builtin_ia32_rsqrt28ps_mask", IX86_BUILTIN_RSQRT28PS, UNKNOWN, (int) V16SF_FTYPE_V16SF_V16SF_HI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrsqrt28v2df_round, "__builtin_ia32_rsqrt28sd_round", IX86_BUILTIN_RSQRT28SD, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrsqrt28v2df_mask_round, "__builtin_ia32_rsqrt28sd_mask_round", IX86_BUILTIN_RSQRT28SD_MASK_ROUND, UNKNOWN, (int) V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrsqrt28v4sf_round, "__builtin_ia32_rsqrt28ss_round", IX86_BUILTIN_RSQRT28SS, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_INT)
-BDESC (OPTION_MASK_ISA_AVX512ER, 0, CODE_FOR_avx512er_vmrsqrt28v4sf_mask_round, "__builtin_ia32_rsqrt28ss_mask_round", IX86_BUILTIN_RSQRT28SS_MASK_ROUND, UNKNOWN, (int) V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT)
-
/* AVX512DQ. */
BDESC (OPTION_MASK_ISA_AVX512DQ, OPTION_MASK_ISA2_EVEX512, CODE_FOR_reducepv8df_mask_round, "__builtin_ia32_reducepd512_mask_round", IX86_BUILTIN_REDUCEPD512_MASK_ROUND, UNKNOWN, (int) V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT)
BDESC (OPTION_MASK_ISA_AVX512DQ, OPTION_MASK_ISA2_EVEX512, CODE_FOR_reducepv16sf_mask_round, "__builtin_ia32_reduceps512_mask_round", IX86_BUILTIN_REDUCEPS512_MASK_ROUND, UNKNOWN, (int) V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT)
diff --git a/gcc/config/i386/i386-builtins.cc b/gcc/config/i386/i386-builtins.cc
index 8b79d335c88..a76451f5949 100644
--- a/gcc/config/i386/i386-builtins.cc
+++ b/gcc/config/i386/i386-builtins.cc
@@ -1095,32 +1095,6 @@ ix86_init_mmx_sse_builtins (void)
VOID_FTYPE_PINT_QI_V2DI_V4SI_INT,
IX86_BUILTIN_SCATTERALTDIV4SI);
- /* AVX512PF */
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfdpd",
- VOID_FTYPE_QI_V8SI_PCVOID_INT_INT,
- IX86_BUILTIN_GATHERPFDPD);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfdps",
- VOID_FTYPE_HI_V16SI_PCVOID_INT_INT,
- IX86_BUILTIN_GATHERPFDPS);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfqpd",
- VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
- IX86_BUILTIN_GATHERPFQPD);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfqps",
- VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
- IX86_BUILTIN_GATHERPFQPS);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_scatterpfdpd",
- VOID_FTYPE_QI_V8SI_PCVOID_INT_INT,
- IX86_BUILTIN_SCATTERPFDPD);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_scatterpfdps",
- VOID_FTYPE_HI_V16SI_PCVOID_INT_INT,
- IX86_BUILTIN_SCATTERPFDPS);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_scatterpfqpd",
- VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
- IX86_BUILTIN_SCATTERPFQPD);
- def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_scatterpfqps",
- VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
- IX86_BUILTIN_SCATTERPFQPS);
-
/* SHA */
def_builtin_const (OPTION_MASK_ISA_SHA, 0, "__builtin_ia32_sha1msg1",
V4SI_FTYPE_V4SI_V4SI, IX86_BUILTIN_SHA1MSG1);
diff --git a/gcc/config/i386/i386-c.cc b/gcc/config/i386/i386-c.cc
index 07f4936ba91..7b0ad9e9181 100644
--- a/gcc/config/i386/i386-c.cc
+++ b/gcc/config/i386/i386-c.cc
@@ -222,13 +222,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__clearwaterforest");
def_or_undef (parse_in, "__clearwaterforest__");
break;
- case PROCESSOR_KNL:
- def_or_undef (parse_in, "__knl");
- def_or_undef (parse_in, "__knl__");
- break;
- case PROCESSOR_KNM:
- def_or_undef (parse_in, "__knm");
- def_or_undef (parse_in, "__knm__");
break;
case PROCESSOR_SKYLAKE:
def_or_undef (parse_in, "__skylake");
@@ -440,12 +433,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
case PROCESSOR_CLEARWATERFOREST:
def_or_undef (parse_in, "__tune_clearwaterforest__");
break;
- case PROCESSOR_KNL:
- def_or_undef (parse_in, "__tune_knl__");
- break;
- case PROCESSOR_KNM:
- def_or_undef (parse_in, "__tune_knm__");
- break;
case PROCESSOR_SKYLAKE:
def_or_undef (parse_in, "__tune_skylake__");
break;
@@ -563,12 +550,8 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__AVX2__");
if (isa_flag & OPTION_MASK_ISA_AVX512F)
def_or_undef (parse_in, "__AVX512F__");
- if (isa_flag & OPTION_MASK_ISA_AVX512ER)
- def_or_undef (parse_in, "__AVX512ER__");
if (isa_flag & OPTION_MASK_ISA_AVX512CD)
def_or_undef (parse_in, "__AVX512CD__");
- if (isa_flag & OPTION_MASK_ISA_AVX512PF)
- def_or_undef (parse_in, "__AVX512PF__");
if (isa_flag & OPTION_MASK_ISA_AVX512DQ)
def_or_undef (parse_in, "__AVX512DQ__");
if (isa_flag & OPTION_MASK_ISA_AVX512BW)
@@ -582,8 +565,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__AVX512VBMI__");
if (isa_flag & OPTION_MASK_ISA_AVX512IFMA)
def_or_undef (parse_in, "__AVX512IFMA__");
- if (isa_flag2 & OPTION_MASK_ISA2_AVX5124VNNIW)
- def_or_undef (parse_in, "__AVX5124VNNIW__");
if (isa_flag & OPTION_MASK_ISA_AVX512VBMI2)
def_or_undef (parse_in, "__AVX512VBMI2__");
if (isa_flag & OPTION_MASK_ISA_AVX512VNNI)
@@ -592,8 +573,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__PCONFIG__");
if (isa_flag2 & OPTION_MASK_ISA2_SGX)
def_or_undef (parse_in, "__SGX__");
- if (isa_flag2 & OPTION_MASK_ISA2_AVX5124FMAPS)
- def_or_undef (parse_in, "__AVX5124FMAPS__");
if (isa_flag & OPTION_MASK_ISA_AVX512BITALG)
def_or_undef (parse_in, "__AVX512BITALG__");
if (isa_flag & OPTION_MASK_ISA_AVX512VPOPCNTDQ)
@@ -642,8 +621,6 @@ ix86_target_macros_internal (HOST_WIDE_INT isa_flag,
def_or_undef (parse_in, "__XSAVE__");
if (isa_flag & OPTION_MASK_ISA_XSAVEOPT)
def_or_undef (parse_in, "__XSAVEOPT__");
- if (isa_flag & OPTION_MASK_ISA_PREFETCHWT1)
- def_or_undef (parse_in, "__PREFETCHWT1__");
if ((fpmath & FPMATH_SSE) && (isa_flag & OPTION_MASK_ISA_SSE))
def_or_undef (parse_in, "__SSE_MATH__");
if ((fpmath & FPMATH_SSE) && (isa_flag & OPTION_MASK_ISA_SSE2))
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 4e16aedc5c1..100fb2afb3a 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -13648,7 +13648,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
}
if (TARGET_3DNOW || TARGET_PREFETCH_SSE
- || TARGET_PRFCHW || TARGET_PREFETCHWT1)
+ || TARGET_PRFCHW)
emit_insn (gen_prefetch (op0, op1, op2));
else if (!MEM_P (op0) && side_effects_p (op0))
/* Don't do anything with direct references to volatile memory,
@@ -14836,9 +14836,6 @@ rdseed_step:
case IX86_BUILTIN_SCATTERDIV2DI:
icode = CODE_FOR_avx512vl_scatterdiv2di;
goto scatter_gen;
- case IX86_BUILTIN_GATHERPFDPD:
- icode = CODE_FOR_avx512pf_gatherpfv8sidf;
- goto vec_prefetch_gen;
case IX86_BUILTIN_SCATTERALTSIV8DF:
icode = CODE_FOR_avx512f_scattersiv8df;
goto scatter_gen;
@@ -14875,27 +14872,6 @@ rdseed_step:
case IX86_BUILTIN_SCATTERALTDIV4SI:
icode = CODE_FOR_avx512vl_scatterdiv4si;
goto scatter_gen;
- case IX86_BUILTIN_GATHERPFDPS:
- icode = CODE_FOR_avx512pf_gatherpfv16sisf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_GATHERPFQPD:
- icode = CODE_FOR_avx512pf_gatherpfv8didf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_GATHERPFQPS:
- icode = CODE_FOR_avx512pf_gatherpfv8disf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_SCATTERPFDPD:
- icode = CODE_FOR_avx512pf_scatterpfv8sidf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_SCATTERPFDPS:
- icode = CODE_FOR_avx512pf_scatterpfv16sisf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_SCATTERPFQPD:
- icode = CODE_FOR_avx512pf_scatterpfv8didf;
- goto vec_prefetch_gen;
- case IX86_BUILTIN_SCATTERPFQPS:
- icode = CODE_FOR_avx512pf_scatterpfv8disf;
- goto vec_prefetch_gen;
gather_gen:
rtx half;
@@ -15233,66 +15209,6 @@ rdseed_step:
emit_insn (pat);
return 0;
- vec_prefetch_gen:
- arg0 = CALL_EXPR_ARG (exp, 0);
- arg1 = CALL_EXPR_ARG (exp, 1);
- arg2 = CALL_EXPR_ARG (exp, 2);
- arg3 = CALL_EXPR_ARG (exp, 3);
- arg4 = CALL_EXPR_ARG (exp, 4);
- op0 = expand_normal (arg0);
- op1 = expand_normal (arg1);
- op2 = expand_normal (arg2);
- op3 = expand_normal (arg3);
- op4 = expand_normal (arg4);
- mode0 = insn_data[icode].operand[0].mode;
- mode1 = insn_data[icode].operand[1].mode;
- mode3 = insn_data[icode].operand[3].mode;
- mode4 = insn_data[icode].operand[4].mode;
-
- op0 = fixup_modeless_constant (op0, mode0);
-
- if (GET_MODE (op0) == mode0 || GET_MODE (op0) == VOIDmode)
- {
- if (!insn_data[icode].operand[0].predicate (op0, mode0))
- op0 = copy_to_mode_reg (mode0, op0);
- }
- else
- {
- op0 = copy_to_reg (op0);
- op0 = lowpart_subreg (mode0, op0, GET_MODE (op0));
- }
-
- if (!insn_data[icode].operand[1].predicate (op1, mode1))
- op1 = copy_to_mode_reg (mode1, op1);
-
- /* Force memory operand only with base register here. But we
- don't want to do it on memory operand for other builtin
- functions. */
- op2 = force_reg (Pmode, convert_to_mode (Pmode, op2, 1));
-
- if (!insn_data[icode].operand[2].predicate (op2, Pmode))
- op2 = copy_to_mode_reg (Pmode, op2);
-
- if (!insn_data[icode].operand[3].predicate (op3, mode3))
- {
- error ("the forth argument must be scale 1, 2, 4, 8");
- return const0_rtx;
- }
-
- if (!insn_data[icode].operand[4].predicate (op4, mode4))
- {
- error ("incorrect hint operand");
- return const0_rtx;
- }
-
- pat = GEN_FCN (icode) (op0, op1, op2, op3, op4);
- if (! pat)
- return const0_rtx;
-
- emit_insn (pat);
-
- return 0;
-
case IX86_BUILTIN_XABORT:
icode = CODE_FOR_xabort;
arg0 = CALL_EXPR_ARG (exp, 0);
@@ -15410,229 +15326,9 @@ rdseed_step:
&& fcode <= IX86_BUILTIN__BDESC_ARGS_LAST)
{
i = fcode - IX86_BUILTIN__BDESC_ARGS_FIRST;
- rtx (*fcn) (rtx, rtx, rtx, rtx) = NULL;
- rtx (*fcn_mask) (rtx, rtx, rtx, rtx, rtx);
- rtx (*fcn_maskz) (rtx, rtx, rtx, rtx, rtx, rtx);
- int masked = 1;
- machine_mode mode, wide_mode, nar_mode;
-
- nar_mode = V4SFmode;
- mode = V16SFmode;
- wide_mode = V64SFmode;
- fcn_mask = gen_avx5124fmaddps_4fmaddps_mask;
- fcn_maskz = gen_avx5124fmaddps_4fmaddps_maskz;
switch (fcode)
{
- case IX86_BUILTIN_4FMAPS:
- fcn = gen_avx5124fmaddps_4fmaddps;
- masked = 0;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4DPWSSD:
- nar_mode = V4SImode;
- mode = V16SImode;
- wide_mode = V64SImode;
- fcn = gen_avx5124vnniw_vp4dpwssd;
- masked = 0;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4DPWSSDS:
- nar_mode = V4SImode;
- mode = V16SImode;
- wide_mode = V64SImode;
- fcn = gen_avx5124vnniw_vp4dpwssds;
- masked = 0;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4FNMAPS:
- fcn = gen_avx5124fmaddps_4fnmaddps;
- masked = 0;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4FNMAPS_MASK:
- fcn_mask = gen_avx5124fmaddps_4fnmaddps_mask;
- fcn_maskz = gen_avx5124fmaddps_4fnmaddps_maskz;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4DPWSSD_MASK:
- nar_mode = V4SImode;
- mode = V16SImode;
- wide_mode = V64SImode;
- fcn_mask = gen_avx5124vnniw_vp4dpwssd_mask;
- fcn_maskz = gen_avx5124vnniw_vp4dpwssd_maskz;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4DPWSSDS_MASK:
- nar_mode = V4SImode;
- mode = V16SImode;
- wide_mode = V64SImode;
- fcn_mask = gen_avx5124vnniw_vp4dpwssds_mask;
- fcn_maskz = gen_avx5124vnniw_vp4dpwssds_maskz;
- goto v4fma_expand;
-
- case IX86_BUILTIN_4FMAPS_MASK:
- {
- tree args[4];
- rtx ops[4];
- rtx wide_reg;
- rtx accum;
- rtx addr;
- rtx mem;
-
-v4fma_expand:
- wide_reg = gen_reg_rtx (wide_mode);
- for (i = 0; i < 4; i++)
- {
- args[i] = CALL_EXPR_ARG (exp, i);
- ops[i] = expand_normal (args[i]);
-
- emit_move_insn (gen_rtx_SUBREG (mode, wide_reg, i * 64),
- ops[i]);
- }
-
- accum = expand_normal (CALL_EXPR_ARG (exp, 4));
- accum = force_reg (mode, accum);
-
- addr = expand_normal (CALL_EXPR_ARG (exp, 5));
- addr = force_reg (Pmode, addr);
-
- mem = gen_rtx_MEM (nar_mode, addr);
-
- target = gen_reg_rtx (mode);
-
- emit_move_insn (target, accum);
-
- if (! masked)
- emit_insn (fcn (target, accum, wide_reg, mem));
- else
- {
- rtx merge, mask;
- merge = expand_normal (CALL_EXPR_ARG (exp, 6));
-
- mask = expand_normal (CALL_EXPR_ARG (exp, 7));
-
- if (CONST_INT_P (mask))
- mask = fixup_modeless_constant (mask, HImode);
-
- mask = force_reg (HImode, mask);
-
- if (GET_MODE (mask) != HImode)
- mask = gen_rtx_SUBREG (HImode, mask, 0);
-
- /* If merge is 0 then we're about to emit z-masked variant. */
- if (const0_operand (merge, mode))
- emit_insn (fcn_maskz (target, accum, wide_reg, mem, merge, mask));
- /* If merge is the same as accum then emit merge-masked variant. */
- else if (CALL_EXPR_ARG (exp, 6) == CALL_EXPR_ARG (exp, 4))
- {
- merge = force_reg (mode, merge);
- emit_insn (fcn_mask (target, wide_reg, mem, merge, mask));
- }
- /* Merge with something unknown might happen if we z-mask w/ -O0. */
- else
- {
- target = gen_reg_rtx (mode);
- emit_move_insn (target, merge);
- emit_insn (fcn_mask (target, wide_reg, mem, target, mask));
- }
- }
- return target;
- }
-
- case IX86_BUILTIN_4FNMASS:
- fcn = gen_avx5124fmaddps_4fnmaddss;
- masked = 0;
- goto s4fma_expand;
-
- case IX86_BUILTIN_4FMASS:
- fcn = gen_avx5124fmaddps_4fmaddss;
- masked = 0;
- goto s4fma_expand;
-
- case IX86_BUILTIN_4FNMASS_MASK:
- fcn_mask = gen_avx5124fmaddps_4fnmaddss_mask;
- fcn_maskz = gen_avx5124fmaddps_4fnmaddss_maskz;
- goto s4fma_expand;
-
- case IX86_BUILTIN_4FMASS_MASK:
- {
- tree args[4];
- rtx ops[4];
- rtx wide_reg;
- rtx accum;
- rtx addr;
- rtx mem;
-
- fcn_mask = gen_avx5124fmaddps_4fmaddss_mask;
- fcn_maskz = gen_avx5124fmaddps_4fmaddss_maskz;
-
-s4fma_expand:
- mode = V4SFmode;
- wide_reg = gen_reg_rtx (V64SFmode);
- for (i = 0; i < 4; i++)
- {
- rtx tmp;
- args[i] = CALL_EXPR_ARG (exp, i);
- ops[i] = expand_normal (args[i]);
-
- tmp = gen_reg_rtx (SFmode);
- emit_move_insn (tmp, gen_rtx_SUBREG (SFmode, ops[i], 0));
-
- emit_move_insn (gen_rtx_SUBREG (V16SFmode, wide_reg, i * 64),
- gen_rtx_SUBREG (V16SFmode, tmp, 0));
- }
-
- accum = expand_normal (CALL_EXPR_ARG (exp, 4));
- accum = force_reg (V4SFmode, accum);
-
- addr = expand_normal (CALL_EXPR_ARG (exp, 5));
- addr = force_reg (Pmode, addr);
-
- mem = gen_rtx_MEM (V4SFmode, addr);
-
- target = gen_reg_rtx (V4SFmode);
-
- emit_move_insn (target, accum);
-
- if (! masked)
- emit_insn (fcn (target, accum, wide_reg, mem));
- else
- {
- rtx merge, mask;
- merge = expand_normal (CALL_EXPR_ARG (exp, 6));
-
- mask = expand_normal (CALL_EXPR_ARG (exp, 7));
-
- if (CONST_INT_P (mask))
- mask = fixup_modeless_constant (mask, QImode);
-
- mask = force_reg (QImode, mask);
-
- if (GET_MODE (mask) != QImode)
- mask = gen_rtx_SUBREG (QImode, mask, 0);
-
- /* If merge is 0 then we're about to emit z-masked variant. */
- if (const0_operand (merge, mode))
- emit_insn (fcn_maskz (target, accum, wide_reg, mem, merge, mask));
- /* If merge is the same as accum then emit merge-masked
- variant. */
- else if (CALL_EXPR_ARG (exp, 6) == CALL_EXPR_ARG (exp, 4))
- {
- merge = force_reg (mode, merge);
- emit_insn (fcn_mask (target, wide_reg, mem, merge, mask));
- }
- /* Merge with something unknown might happen if we z-mask
- w/ -O0. */
- else
- {
- target = gen_reg_rtx (mode);
- emit_move_insn (target, merge);
- emit_insn (fcn_mask (target, wide_reg, mem, target, mask));
- }
- }
- return target;
- }
case IX86_BUILTIN_RDPID:
return ix86_expand_special_args_builtin (bdesc_args + i, exp,
target);
@@ -18977,17 +18673,8 @@ ix86_emit_swdivsf (rtx res, rtx a, rtx b, machine_mode mode)
/* x0 = rcp(b) estimate */
if (mode == V16SFmode || mode == V8DFmode)
{
- if (TARGET_AVX512ER)
- {
- emit_insn (gen_rtx_SET (x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, b),
- UNSPEC_RCP28)));
- /* res = a * x0 */
- emit_insn (gen_rtx_SET (res, gen_rtx_MULT (mode, a, x0)));
- return;
- }
- else
- emit_insn (gen_rtx_SET (x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, b),
- UNSPEC_RCP14)));
+ emit_insn (gen_rtx_SET (x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, b),
+ UNSPEC_RCP14)));
}
else
emit_insn (gen_rtx_SET (x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, b),
@@ -19025,24 +18712,6 @@ ix86_emit_swsqrtsf (rtx res, rtx a, machine_mode mode, bool recip)
e2 = gen_reg_rtx (mode);
e3 = gen_reg_rtx (mode);
- if (TARGET_AVX512ER && mode == V16SFmode)
- {
- if (recip)
- /* res = rsqrt28(a) estimate */
- emit_insn (gen_rtx_SET (res, gen_rtx_UNSPEC (mode, gen_rtvec (1, a),
- UNSPEC_RSQRT28)));
- else
- {
- /* x0 = rsqrt28(a) estimate */
- emit_insn (gen_rtx_SET (x0, gen_rtx_UNSPEC (mode, gen_rtvec (1, a),
- UNSPEC_RSQRT28)));
- /* res = rcp28(x0) estimate */
- emit_insn (gen_rtx_SET (res, gen_rtx_UNSPEC (mode, gen_rtvec (1, x0),
- UNSPEC_RCP28)));
- }
- return;
- }
-
real_from_integer (&r, VOIDmode, -3, SIGNED);
mthree = const_double_from_real_value (r, SFmode);
diff --git a/gcc/config/i386/i386-isa.def b/gcc/config/i386/i386-isa.def
index 9100bc65ecd..61983f86439 100644
--- a/gcc/config/i386/i386-isa.def
+++ b/gcc/config/i386/i386-isa.def
@@ -58,12 +58,9 @@ DEF_PTA(FXSR)
DEF_PTA(XSAVE)
DEF_PTA(XSAVEOPT)
DEF_PTA(AVX512F)
-DEF_PTA(AVX512ER)
-DEF_PTA(AVX512PF)
DEF_PTA(AVX512CD)
DEF_PTA(NO_TUNE)
DEF_PTA(SHA)
-DEF_PTA(PREFETCHWT1)
DEF_PTA(CLFLUSHOPT)
DEF_PTA(XSAVEC)
DEF_PTA(XSAVES)
@@ -77,8 +74,6 @@ DEF_PTA(MWAITX)
DEF_PTA(CLZERO)
DEF_PTA(NO_80387)
DEF_PTA(PKU)
-DEF_PTA(AVX5124VNNIW)
-DEF_PTA(AVX5124FMAPS)
DEF_PTA(AVX512VPOPCNTDQ)
DEF_PTA(SGX)
DEF_PTA(AVX512VNNI)
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index ac48b5c61c4..78602a17f7e 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -115,8 +115,6 @@ along with GCC; see the file COPYING3. If not see
#define m_HASWELL (HOST_WIDE_INT_1U< is deprecated; use "
"% or %"
" instead as appropriate"));
- else if (!strcmp (opts->x_ix86_tune_string, "knl"))
- warning (OPT_Wdeprecated,
- main_args_p
- ? G_("%<-mtune=knl%> support will be removed in GCC 15")
- : G_("% support will be removed in "
- "GCC 15"));
- else if (!strcmp (opts->x_ix86_tune_string, "knm"))
- warning (OPT_Wdeprecated,
- main_args_p
- ? G_("%<-mtune=knm%> support will be removed in GCC 15")
- : G_("% support will be removed in "
- "GCC 15"));
}
else
{
@@ -2326,19 +2300,6 @@ ix86_option_override_internal (bool main_args_p,
return false;
}
- if (!strcmp (opts->x_ix86_arch_string, "knl"))
- warning (OPT_Wdeprecated,
- main_args_p
- ? G_("%<-march=knl%> support will be removed in GCC 15")
- : G_("% support will be removed in "
- "GCC 15"));
- else if (!strcmp (opts->x_ix86_arch_string, "knm"))
- warning (OPT_Wdeprecated,
- main_args_p
- ? G_("%<-march=knm%> support will be removed in GCC 15")
- : G_("% support will be removed in "
- "GCC 15"));
-
ix86_schedule = processor_alias_table[i].schedule;
ix86_arch = processor_alias_table[i].processor;
@@ -2631,8 +2592,7 @@ ix86_option_override_internal (bool main_args_p,
/* Enable SSE prefetch. */
if (TARGET_SSE_P (opts->x_ix86_isa_flags)
|| (TARGET_PRFCHW_P (opts->x_ix86_isa_flags)
- && !TARGET_3DNOW_P (opts->x_ix86_isa_flags))
- || TARGET_PREFETCHWT1_P (opts->x_ix86_isa_flags))
+ && !TARGET_3DNOW_P (opts->x_ix86_isa_flags)))
ix86_prefetch_sse = true;
/* Enable mwait/monitor instructions for -msse3. */
@@ -2757,15 +2717,6 @@ ix86_option_override_internal (bool main_args_p,
opts->x_ix86_isa_flags2 |= avx512_isa_flags2;
}
- /* Disable AVX512{PF,ER,4VNNIW,4FAMPS} for -mno-evex512. */
- if (!TARGET_EVEX512_P(opts->x_ix86_isa_flags2))
- {
- opts->x_ix86_isa_flags
- &= ~(OPTION_MASK_ISA_AVX512PF | OPTION_MASK_ISA_AVX512ER);
- opts->x_ix86_isa_flags2
- &= ~(OPTION_MASK_ISA2_AVX5124FMAPS | OPTION_MASK_ISA2_AVX5124VNNIW);
- }
-
/* Validate -mpreferred-stack-boundary= value or default it to
PREFERRED_STACK_BOUNDARY_DEFAULT. */
ix86_preferred_stack_boundary = PREFERRED_STACK_BOUNDARY_DEFAULT;
@@ -2982,7 +2933,6 @@ ix86_option_override_internal (bool main_args_p,
sorry ("%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH");
if (!(opts_set->x_target_flags & MASK_VZEROUPPER)
- && TARGET_EMIT_VZEROUPPER
&& flag_expensive_optimizations
&& !optimize_size)
opts->x_target_flags |= MASK_VZEROUPPER;
diff --git a/gcc/config/i386/i386-rust.cc b/gcc/config/i386/i386-rust.cc
index 00038482fe0..e6173e69db4 100644
--- a/gcc/config/i386/i386-rust.cc
+++ b/gcc/config/i386/i386-rust.cc
@@ -59,12 +59,8 @@ ix86_rust_target_cpu_info (void)
rust_add_target_info ("target_feature", "avx2");
if (TARGET_AVX512F)
rust_add_target_info ("target_feature", "avx512f");
- if (TARGET_AVX512ER)
- rust_add_target_info ("target_feature", "avx512er");
if (TARGET_AVX512CD)
rust_add_target_info ("target_feature", "avx512cd");
- if (TARGET_AVX512PF)
- rust_add_target_info ("target_feature", "avx512pf");
if (TARGET_AVX512DQ)
rust_add_target_info ("target_feature", "avx512dq");
if (TARGET_AVX512BW)
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index b4838b7939e..69cd4ae05a7 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -20881,13 +20881,6 @@ ix86_hard_regno_mode_ok (unsigned int regno, machine_mode mode)
|| VALID_AVX512F_SCALAR_MODE (mode)))
return true;
- /* For AVX-5124FMAPS or AVX-5124VNNIW
- allow V64SF and V64SI modes for special regnos. */
- if ((TARGET_AVX5124FMAPS || TARGET_AVX5124VNNIW)
- && (mode == V64SFmode || mode == V64SImode)
- && MOD4_SSE_REGNO_P (regno))
- return true;
-
/* TODO check for QI/HI scalars. */
/* AVX512VL allows sse regs16+ for 128/256 bit modes. */
if (TARGET_AVX512VL
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 529edff93a4..359a8408263 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -447,8 +447,6 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST];
#define TARGET_ONE_IF_CONV_INSN \
ix86_tune_features[X86_TUNE_ONE_IF_CONV_INSN]
#define TARGET_AVOID_MFENCE ix86_tune_features[X86_TUNE_AVOID_MFENCE]
-#define TARGET_EMIT_VZEROUPPER \
- ix86_tune_features[X86_TUNE_EMIT_VZEROUPPER]
#define TARGET_EXPAND_ABS \
ix86_tune_features[X86_TUNE_EXPAND_ABS]
#define TARGET_V2DF_REDUCTION_PREFER_HADDPD \
@@ -2284,8 +2282,6 @@ enum processor_type
PROCESSOR_SIERRAFOREST,
PROCESSOR_GRANDRIDGE,
PROCESSOR_CLEARWATERFOREST,
- PROCESSOR_KNL,
- PROCESSOR_KNM,
PROCESSOR_SKYLAKE,
PROCESSOR_SKYLAKE_AVX512,
PROCESSOR_CANNONLAKE,
@@ -2395,8 +2391,6 @@ constexpr wide_int_bitmask PTA_SAPPHIRERAPIDS = PTA_ICELAKE_SERVER | PTA_MOVDIRI
| PTA_MOVDIR64B | PTA_ENQCMD | PTA_CLDEMOTE | PTA_PTWRITE | PTA_WAITPKG
| PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE | PTA_AMX_INT8 | PTA_AMX_BF16
| PTA_UINTR | PTA_AVXVNNI | PTA_AVX512FP16 | PTA_AVX512BF16;
-constexpr wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF
- | PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD | PTA_PREFETCHWT1;
constexpr wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE;
constexpr wide_int_bitmask PTA_SILVERMONT = PTA_WESTMERE | PTA_MOVBE
| PTA_RDRND | PTA_PRFCHW;
@@ -2426,8 +2420,6 @@ constexpr wide_int_bitmask PTA_CLEARWATERFOREST = PTA_SIERRAFOREST
| PTA_AVXVNNIINT16 | PTA_SHA512 | PTA_SM3 | PTA_SM4 | PTA_USER_MSR
| PTA_PREFETCHI;
constexpr wide_int_bitmask PTA_PANTHERLAKE = PTA_ARROWLAKE_S | PTA_PREFETCHI;
-constexpr wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW
- | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ;
constexpr wide_int_bitmask PTA_ZNVER1 = PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2
| PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
| PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 | PTA_BMI | PTA_BMI2
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 764bfe20ff2..e8073f5a200 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -27045,7 +27045,7 @@
[(prefetch (match_operand 0 "address_operand")
(match_operand:SI 1 "const_int_operand")
(match_operand:SI 2 "const_int_operand"))]
- "TARGET_3DNOW || TARGET_PREFETCH_SSE || TARGET_PRFCHW || TARGET_PREFETCHWT1"
+ "TARGET_3DNOW || TARGET_PREFETCH_SSE || TARGET_PRFCHW"
{
bool write = operands[1] != const0_rtx;
int locality = INTVAL (operands[2]);
@@ -27059,9 +27059,7 @@
if (write)
{
- if (TARGET_PREFETCHWT1)
- operands[2] = GEN_INT (MAX (locality, 2));
- else if (TARGET_PRFCHW)
+ if (TARGET_PRFCHW)
operands[2] = GEN_INT (3);
else if (TARGET_3DNOW && !TARGET_SSE2)
operands[2] = GEN_INT (3);
@@ -27110,7 +27108,7 @@
[(prefetch (match_operand 0 "address_operand" "p")
(match_operand:SI 1 "const_int_operand")
(const_int 3))]
- "TARGET_3DNOW || TARGET_PRFCHW || TARGET_PREFETCHWT1"
+ "TARGET_3DNOW || TARGET_PRFCHW"
{
if (operands[1] == const0_rtx)
return "prefetch\t%a0";
@@ -27122,17 +27120,6 @@
(symbol_ref "memory_address_length (operands[0], false)"))
(set_attr "memory" "none")])
-(define_insn "*prefetch_prefetchwt1"
- [(prefetch (match_operand 0 "address_operand" "p")
- (const_int 1)
- (const_int 2))]
- "TARGET_PREFETCHWT1"
- "prefetchwt1\t%a0";
- [(set_attr "type" "sse")
- (set (attr "length_address")
- (symbol_ref "memory_address_length (operands[0], false)"))
- (set_attr "memory" "none")])
-
(define_insn "prefetchi"
[(unspec_volatile [(match_operand 0 "local_func_symbolic_operand" "p")
(match_operand:SI 1 "const_int_operand")]
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index d5f793a9e8b..7151fb1b147 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -741,14 +741,6 @@ mavx512f
Target Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
-mavx512pf
-Target Mask(ISA_AVX512PF) Var(ix86_isa_flags) Save Warn(AVX512PF support will be removed in GCC 15)
-Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation.
-
-mavx512er
-Target Mask(ISA_AVX512ER) Var(ix86_isa_flags) Save Warn(AVX512ER support will be removed in GCC 15)
-Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation.
-
mavx512cd
Target Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
@@ -773,14 +765,6 @@ mavx512vbmi
Target Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
-mavx5124fmaps
-Target Mask(ISA2_AVX5124FMAPS) Var(ix86_isa_flags2) Save Warn(AVX5124FMAPS support will be removed in GCC 15)
-Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation.
-
-mavx5124vnniw
-Target Mask(ISA2_AVX5124VNNIW) Var(ix86_isa_flags2) Save Warn(AVX5124VNNIW support will be removed in GCC 15)
-Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation.
-
mavx512vpopcntdq
Target Mask(ISA_AVX512VPOPCNTDQ) Var(ix86_isa_flags) Save
Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
@@ -972,10 +956,6 @@ mf16c
Target Mask(ISA_F16C) Var(ix86_isa_flags) Save
Support F16C built-in functions and code generation.
-mprefetchwt1
-Target Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save Warn(PREFETCHWT1 support will be removed in GCC 15)
-Support PREFETCHWT1 built-in functions and code generation.
-
mfentry
Target Save Var(flag_fentry)
Emit profiling counter call at function entry before prologue.
diff --git a/gcc/config/i386/immintrin.h b/gcc/config/i386/immintrin.h
index b4243dd942a..b1d4cbf9ecd 100644
--- a/gcc/config/i386/immintrin.h
+++ b/gcc/config/i386/immintrin.h
@@ -54,10 +54,6 @@
#include
-#include
-
-#include
-
#include
#include
@@ -78,10 +74,6 @@
#include
-#include
-
-#include
-
#include
#include
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 2391a0101fe..b59c988fc31 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -109,15 +109,6 @@
;; For embed. rounding feature
UNSPEC_EMBEDDED_ROUNDING
- ;; For AVX512PF support
- UNSPEC_GATHER_PREFETCH
- UNSPEC_SCATTER_PREFETCH
-
- ;; For AVX512ER support
- UNSPEC_EXP2
- UNSPEC_RCP28
- UNSPEC_RSQRT28
-
;; For SHA support
UNSPEC_SHA1MSG1
UNSPEC_SHA1MSG2
@@ -147,12 +138,6 @@
;; For AVX512VBMI support
UNSPEC_VPMULTISHIFT
- ;; For AVX5124FMAPS/AVX5124VNNIW support
- UNSPEC_VP4FMADD
- UNSPEC_VP4FNMADD
- UNSPEC_VP4DPWSSD
- UNSPEC_VP4DPWSSDS
-
;; For GFNI support
UNSPEC_GF2P8AFFINEINV
UNSPEC_GF2P8AFFINE
@@ -458,10 +443,6 @@
[(V16SF "TARGET_EVEX512") (V8SF "TARGET_AVX512VL") (V4SF "TARGET_AVX512VL")
(V8DF "TARGET_EVEX512") (V4DF "TARGET_AVX512VL") (V2DF "TARGET_AVX512VL")])
-;; AVX512ER SF plus 128- and 256-bit SF vector modes
-(define_mode_iterator VF1_AVX512ER_128_256
- [(V16SF "TARGET_AVX512ER") (V8SF "TARGET_AVX") V4SF])
-
(define_mode_iterator VFH_AVX512VL
[(V32HF "TARGET_AVX512FP16 && TARGET_EVEX512")
(V16HF "TARGET_AVX512FP16 && TARGET_AVX512VL")
@@ -2785,9 +2766,9 @@
(set_attr "mode" "")])
(define_expand "rsqrt2"
- [(set (match_operand:VF1_AVX512ER_128_256 0 "register_operand")
- (unspec:VF1_AVX512ER_128_256
- [(match_operand:VF1_AVX512ER_128_256 1 "vector_operand")]
+ [(set (match_operand:VF1_128_256 0 "register_operand")
+ (unspec:VF1_128_256
+ [(match_operand:VF1_128_256 1 "vector_operand")]
UNSPEC_RSQRT))]
"TARGET_SSE && TARGET_SSE_MATH"
{
@@ -24869,271 +24850,6 @@
(set_attr "btver2_decode" "vector,vector,vector,vector")
(set_attr "mode" "TI")])
-;; Packed float variants
-(define_mode_attr GATHER_SCATTER_SF_MEM_MODE
- [(V8DI "V8SF") (V16SI "V16SF")])
-
-(define_expand "avx512pf_gatherpfsf"
- [(unspec
- [(match_operand: 0 "register_operand")
- (mem:
- (match_par_dup 5
- [(match_operand 2 "vsib_address_operand")
- (match_operand:VI48_512 1 "register_operand")
- (match_operand:SI 3 "const1248_operand")]))
- (match_operand:SI 4 "const_2_to_3_operand")]
- UNSPEC_GATHER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- operands[5]
- = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[2], operands[1],
- operands[3]), UNSPEC_VSIBADDR);
-})
-
-(define_insn "*avx512pf_gatherpfsf_mask"
- [(unspec
- [(match_operand: 0 "register_operand" "Yk")
- (match_operator: 5 "vsib_mem_operator"
- [(unspec:P
- [(match_operand:P 2 "vsib_address_operand" "Tv")
- (match_operand:VI48_512 1 "register_operand" "v")
- (match_operand:SI 3 "const1248_operand")]
- UNSPEC_VSIBADDR)])
- (match_operand:SI 4 "const_2_to_3_operand")]
- UNSPEC_GATHER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- switch (INTVAL (operands[4]))
- {
- case 3:
- /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as
- gas changed what it requires incompatibly. */
- return "%M2vgatherpf0ps\t{%5%{%0%}|%X5%{%0%}}";
- case 2:
- return "%M2vgatherpf1ps\t{%5%{%0%}|%X5%{%0%}}";
- default:
- gcc_unreachable ();
- }
-}
- [(set_attr "type" "sse")
- (set_attr "prefix" "evex")
- (set_attr "mode" "XI")])
-
-;; Packed double variants
-(define_expand "avx512pf_gatherpfdf"
- [(unspec
- [(match_operand: 0 "register_operand")
- (mem:V8DF
- (match_par_dup 5
- [(match_operand 2 "vsib_address_operand")
- (match_operand:VI4_256_8_512 1 "register_operand")
- (match_operand:SI 3 "const1248_operand")]))
- (match_operand:SI 4 "const_2_to_3_operand")]
- UNSPEC_GATHER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- operands[5]
- = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[2], operands[1],
- operands[3]), UNSPEC_VSIBADDR);
-})
-
-(define_insn "*avx512pf_gatherpfdf_mask"
- [(unspec
- [(match_operand: 0 "register_operand" "Yk")
- (match_operator:V8DF 5 "vsib_mem_operator"
- [(unspec:P
- [(match_operand:P 2 "vsib_address_operand" "Tv")
- (match_operand:VI4_256_8_512 1 "register_operand" "v")
- (match_operand:SI 3 "const1248_operand")]
- UNSPEC_VSIBADDR)])
- (match_operand:SI 4 "const_2_to_3_operand")]
- UNSPEC_GATHER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- switch (INTVAL (operands[4]))
- {
- case 3:
- /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as
- gas changed what it requires incompatibly. */
- return "%M2vgatherpf0pd\t{%5%{%0%}|%X5%{%0%}}";
- case 2:
- return "%M2vgatherpf1pd\t{%5%{%0%}|%X5%{%0%}}";
- default:
- gcc_unreachable ();
- }
-}
- [(set_attr "type" "sse")
- (set_attr "prefix" "evex")
- (set_attr "mode" "XI")])
-
-;; Packed float variants
-(define_expand "avx512pf_scatterpfsf"
- [(unspec
- [(match_operand: 0 "register_operand")
- (mem:
- (match_par_dup 5
- [(match_operand 2 "vsib_address_operand")
- (match_operand:VI48_512 1 "register_operand")
- (match_operand:SI 3 "const1248_operand")]))
- (match_operand:SI 4 "const2367_operand")]
- UNSPEC_SCATTER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- operands[5]
- = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[2], operands[1],
- operands[3]), UNSPEC_VSIBADDR);
-})
-
-(define_insn "*avx512pf_scatterpfsf_mask"
- [(unspec
- [(match_operand: 0 "register_operand" "Yk")
- (match_operator: 5 "vsib_mem_operator"
- [(unspec:P
- [(match_operand:P 2 "vsib_address_operand" "Tv")
- (match_operand:VI48_512 1 "register_operand" "v")
- (match_operand:SI 3 "const1248_operand")]
- UNSPEC_VSIBADDR)])
- (match_operand:SI 4 "const2367_operand")]
- UNSPEC_SCATTER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- switch (INTVAL (operands[4]))
- {
- case 3:
- case 7:
- /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as
- gas changed what it requires incompatibly. */
- return "%M2vscatterpf0ps\t{%5%{%0%}|%X5%{%0%}}";
- case 2:
- case 6:
- return "%M2vscatterpf1ps\t{%5%{%0%}|%X5%{%0%}}";
- default:
- gcc_unreachable ();
- }
-}
- [(set_attr "type" "sse")
- (set_attr "prefix" "evex")
- (set_attr "mode" "XI")])
-
-;; Packed double variants
-(define_expand "avx512pf_scatterpfdf"
- [(unspec
- [(match_operand: 0 "register_operand")
- (mem:V8DF
- (match_par_dup 5
- [(match_operand 2 "vsib_address_operand")
- (match_operand:VI4_256_8_512 1 "register_operand")
- (match_operand:SI 3 "const1248_operand")]))
- (match_operand:SI 4 "const2367_operand")]
- UNSPEC_SCATTER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- operands[5]
- = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[2], operands[1],
- operands[3]), UNSPEC_VSIBADDR);
-})
-
-(define_insn "*avx512pf_scatterpfdf_mask"
- [(unspec
- [(match_operand: 0 "register_operand" "Yk")
- (match_operator:V8DF 5 "vsib_mem_operator"
- [(unspec:P
- [(match_operand:P 2 "vsib_address_operand" "Tv")
- (match_operand:VI4_256_8_512 1 "register_operand" "v")
- (match_operand:SI 3 "const1248_operand")]
- UNSPEC_VSIBADDR)])
- (match_operand:SI 4 "const2367_operand")]
- UNSPEC_SCATTER_PREFETCH)]
- "TARGET_AVX512PF"
-{
- switch (INTVAL (operands[4]))
- {
- case 3:
- case 7:
- /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as
- gas changed what it requires incompatibly. */
- return "%M2vscatterpf0pd\t{%5%{%0%}|%X5%{%0%}}";
- case 2:
- case 6:
- return "%M2vscatterpf1pd\t{%5%{%0%}|%X5%{%0%}}";
- default:
- gcc_unreachable ();
- }
-}
- [(set_attr "type" "sse")
- (set_attr "prefix" "evex")
- (set_attr "mode" "XI")])
-
-(define_expand "exp22"
- [(set (match_operand:VF_512 0 "register_operand")
- (unspec:VF_512
- [(match_operand:VF_512 1 "vector_operand")]
- UNSPEC_EXP2))]
- "TARGET_AVX512ER")
-
-(define_insn "avx512er_exp2"
- [(set (match_operand:VF_512 0 "register_operand" "=v")
- (unspec:VF_512
- [(match_operand:VF_512 1 "" "")]
- UNSPEC_EXP2))]
- "TARGET_AVX512ER"
- "vexp2\t{%1, %0|%0, %1}"
- [(set_attr "prefix" "evex")
- (set_attr "type" "sse")
- (set_attr "mode" "")])
-
-(define_insn "avx512er_rcp28"
- [(set (match_operand:VF_512 0 "register_operand" "=v")
- (unspec:VF_512
- [(match_operand:VF_512 1 "" "")]
- UNSPEC_RCP28))]
- "TARGET_AVX512ER"
- "vrcp28\t{%1, %0|%0, %1}"
- [(set_attr "prefix" "evex")
- (set_attr "type" "sse")
- (set_attr "mode" "")])
-
-(define_insn "avx512er_vmrcp28"
- [(set (match_operand:VF_128 0 "register_operand" "=v")
- (vec_merge:VF_128
- (unspec:VF_128
- [(match_operand:VF_128 1 "" "")]
- UNSPEC_RCP28)
- (match_operand:VF_128 2 "register_operand" "v")
- (const_int 1)))]
- "TARGET_AVX512ER"
- "vrcp28\t{%1, %2, %0|%0, %2, %1}"
- [(set_attr "length_immediate" "1")
- (set_attr "prefix" "evex")
- (set_attr "type" "sse")
- (set_attr "mode" "")])
-
-(define_insn "avx512er_rsqrt28"
- [(set (match_operand:VF_512 0 "register_operand" "=v")
- (unspec:VF_512
- [(match_operand:VF_512 1 "" "")]
- UNSPEC_RSQRT28))]
- "TARGET_AVX512ER"
- "vrsqrt28\t{%1, %0|%0, %1}"
- [(set_attr "prefix" "evex")
- (set_attr "type" "sse")
- (set_attr "mode" "")])
-
-(define_insn "avx512er_vmrsqrt28"
- [(set (match_operand:VF_128 0 "register_operand" "=v")
- (vec_merge:VF_128
- (unspec:VF_128
- [(match_operand:VF_128 1 "" "")]
- UNSPEC_RSQRT28)
- (match_operand:VF_128 2 "register_operand" "v")
- (const_int 1)))]
- "TARGET_AVX512ER"
- "vrsqrt28\t{%1, %2, %0|%0, %2, %1}"
- [(set_attr "length_immediate" "1")
- (set_attr "type" "sse")
- (set_attr "prefix" "evex")
- (set_attr "mode" "")])
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; XOP instructions
@@ -29419,291 +29135,6 @@
(set_attr "prefix" "evex")
(set_attr "mode" "")])
-(define_mode_iterator IMOD4
- [(V64SF "TARGET_AVX5124FMAPS") (V64SI "TARGET_AVX5124VNNIW")])
-
-(define_mode_attr imod4_narrow
- [(V64SF "V16SF") (V64SI "V16SI")])
-
-(define_expand "mov"
- [(set (match_operand:IMOD4 0 "nonimmediate_operand")
- (match_operand:IMOD4 1 "nonimm_or_0_operand"))]
- "TARGET_AVX512F"
-{
- ix86_expand_vector_move (mode, operands);
- DONE;
-})
-
-(define_insn_and_split "*mov_internal"
- [(set (match_operand:IMOD4 0 "nonimmediate_operand" "=v,v ,m")
- (match_operand:IMOD4 1 "nonimm_or_0_operand" " C,vm,v"))]
- "TARGET_AVX512F
- && (register_operand (operands[0], mode)
- || register_operand (operands[1], mode))"
- "#"
- "&& reload_completed"
- [(const_int 0)]
-{
- rtx op0, op1;
- int i;
-
- for (i = 0; i < 4; i++)
- {
- op0 = simplify_subreg
- (mode, operands[0], mode, i * 64);
- op1 = simplify_subreg
- (mode, operands[1], mode, i * 64);
- emit_move_insn (op0, op1);
- }
- DONE;
-})
-
-(define_insn "avx5124fmaddps_4fmaddps"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (unspec:V16SF
- [(match_operand:V16SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FMADD))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddps\t{%3, %g2, %0|%0, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fmaddps_mask"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (vec_merge:V16SF
- (unspec:V16SF
- [(match_operand:V64SF 1 "register_operand" "v")
- (match_operand:V4SF 2 "memory_operand" "m")] UNSPEC_VP4FMADD)
- (match_operand:V16SF 3 "register_operand" "0")
- (match_operand:HI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddps\t{%2, %g1, %0%{%4%}|%0%{%4%}, %g1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fmaddps_maskz"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (vec_merge:V16SF
- (unspec:V16SF
- [(match_operand:V16SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FMADD)
- (match_operand:V16SF 4 "const0_operand")
- (match_operand:HI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddps\t{%3, %g2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fmaddss"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (unspec:V4SF
- [(match_operand:V4SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FMADD))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddss\t{%3, %x2, %0|%0, %x2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124fmaddps_4fmaddss_mask"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (vec_merge:V4SF
- (unspec:V4SF
- [(match_operand:V64SF 1 "register_operand" "v")
- (match_operand:V4SF 2 "memory_operand" "m")] UNSPEC_VP4FMADD)
- (match_operand:V4SF 3 "register_operand" "0")
- (match_operand:QI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddss\t{%2, %x1, %0%{%4%}|%0%{%4%}, %x1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124fmaddps_4fmaddss_maskz"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (vec_merge:V4SF
- (unspec:V4SF
- [(match_operand:V4SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FMADD)
- (match_operand:V4SF 4 "const0_operand")
- (match_operand:QI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fmaddss\t{%3, %x2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %x2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddps"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (unspec:V16SF
- [(match_operand:V16SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FNMADD))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddps\t{%3, %g2, %0|%0, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddps_mask"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (vec_merge:V16SF
- (unspec:V16SF
- [(match_operand:V64SF 1 "register_operand" "v")
- (match_operand:V4SF 2 "memory_operand" "m")] UNSPEC_VP4FNMADD)
- (match_operand:V16SF 3 "register_operand" "0")
- (match_operand:HI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddps\t{%2, %g1, %0%{%4%}|%0%{%4%}, %g1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddps_maskz"
- [(set (match_operand:V16SF 0 "register_operand" "=v")
- (vec_merge:V16SF
- (unspec:V16SF
- [(match_operand:V16SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FNMADD)
- (match_operand:V16SF 4 "const0_operand")
- (match_operand:HI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddps\t{%3, %g2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("V16SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddss"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (unspec:V4SF
- [(match_operand:V4SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FNMADD))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddss\t{%3, %x2, %0|%0, %x2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddss_mask"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (vec_merge:V4SF
- (unspec:V4SF
- [(match_operand:V64SF 1 "register_operand" "v")
- (match_operand:V4SF 2 "memory_operand" "m")] UNSPEC_VP4FNMADD)
- (match_operand:V4SF 3 "register_operand" "0")
- (match_operand:QI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddss\t{%2, %x1, %0%{%4%}|%0%{%4%}, %x1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124fmaddps_4fnmaddss_maskz"
- [(set (match_operand:V4SF 0 "register_operand" "=v")
- (vec_merge:V4SF
- (unspec:V4SF
- [(match_operand:V4SF 1 "register_operand" "0")
- (match_operand:V64SF 2 "register_operand" "v")
- (match_operand:V4SF 3 "memory_operand" "m")] UNSPEC_VP4FNMADD)
- (match_operand:V4SF 4 "const0_operand")
- (match_operand:QI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124FMAPS"
- "v4fnmaddss\t{%3, %x2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %x2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("SF"))])
-
-(define_insn "avx5124vnniw_vp4dpwssd"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (unspec:V16SI
- [(match_operand:V16SI 1 "register_operand" "0")
- (match_operand:V64SI 2 "register_operand" "v")
- (match_operand:V4SI 3 "memory_operand" "m")] UNSPEC_VP4DPWSSD))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssd\t{%3, %g2, %0|%0, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
-(define_insn "avx5124vnniw_vp4dpwssd_mask"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (vec_merge:V16SI
- (unspec:V16SI
- [(match_operand:V64SI 1 "register_operand" "v")
- (match_operand:V4SI 2 "memory_operand" "m")] UNSPEC_VP4DPWSSD)
- (match_operand:V16SI 3 "register_operand" "0")
- (match_operand:HI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssd\t{%2, %g1, %0%{%4%}|%0%{%4%}, %g1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
-(define_insn "avx5124vnniw_vp4dpwssd_maskz"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (vec_merge:V16SI
- (unspec:V16SI
- [(match_operand:V16SI 1 "register_operand" "0")
- (match_operand:V64SI 2 "register_operand" "v")
- (match_operand:V4SI 3 "memory_operand" "m")] UNSPEC_VP4DPWSSD)
- (match_operand:V16SI 4 "const0_operand")
- (match_operand:HI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssd\t{%3, %g2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
-(define_insn "avx5124vnniw_vp4dpwssds"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (unspec:V16SI
- [(match_operand:V16SI 1 "register_operand" "0")
- (match_operand:V64SI 2 "register_operand" "v")
- (match_operand:V4SI 3 "memory_operand" "m")] UNSPEC_VP4DPWSSDS))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssds\t{%3, %g2, %0|%0, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
-(define_insn "avx5124vnniw_vp4dpwssds_mask"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (vec_merge:V16SI
- (unspec:V16SI
- [(match_operand:V64SI 1 "register_operand" "v")
- (match_operand:V4SI 2 "memory_operand" "m")] UNSPEC_VP4DPWSSDS)
- (match_operand:V16SI 3 "register_operand" "0")
- (match_operand:HI 4 "register_operand" "Yk")))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssds\t{%2, %g1, %0%{%4%}|%0%{%4%}, %g1, %2}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
-(define_insn "avx5124vnniw_vp4dpwssds_maskz"
- [(set (match_operand:V16SI 0 "register_operand" "=v")
- (vec_merge:V16SI
- (unspec:V16SI
- [(match_operand:V16SI 1 "register_operand" "0")
- (match_operand:V64SI 2 "register_operand" "v")
- (match_operand:V4SI 3 "memory_operand" "m")] UNSPEC_VP4DPWSSDS)
- (match_operand:V16SI 4 "const0_operand")
- (match_operand:HI 5 "register_operand" "Yk")))]
- "TARGET_AVX5124VNNIW"
- "vp4dpwssds\t{%3, %g2, %0%{%5%}%{z%}|%0%{%5%}%{z%}, %g2, %3}"
- [(set_attr ("type") ("ssemuladd"))
- (set_attr ("prefix") ("evex"))
- (set_attr ("mode") ("TI"))])
-
(define_expand "popcount2"
[(set (match_operand:VI48_AVX512VL 0 "register_operand")
(popcount:VI48_AVX512VL
diff --git a/gcc/config/i386/x86-tune-sched.cc b/gcc/config/i386/x86-tune-sched.cc
index 578ba57e6b2..f70846e628e 100644
--- a/gcc/config/i386/x86-tune-sched.cc
+++ b/gcc/config/i386/x86-tune-sched.cc
@@ -44,8 +44,6 @@ ix86_issue_rate (void)
case PROCESSOR_LAKEMONT:
case PROCESSOR_BONNELL:
case PROCESSOR_SILVERMONT:
- case PROCESSOR_KNL:
- case PROCESSOR_KNM:
case PROCESSOR_INTEL:
case PROCESSOR_K6:
case PROCESSOR_BTVER2:
@@ -500,8 +498,6 @@ ix86_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
break;
case PROCESSOR_SILVERMONT:
- case PROCESSOR_KNL:
- case PROCESSOR_KNM:
case PROCESSOR_INTEL:
if (!reload_completed)
return cost;
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 710009712f6..0fa1484b48d 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -41,9 +41,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* X86_TUNE_SCHEDULE: Enable scheduling. */
DEF_TUNE (X86_TUNE_SCHEDULE, "schedule",
m_PENT | m_LAKEMONT | m_PPRO | m_CORE_ALL | m_BONNELL | m_SILVERMONT
- | m_INTEL | m_KNL | m_KNM | m_K6_GEODE | m_AMD_MULTIPLE | m_ZHAOXIN
- | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
- | m_CORE_ATOM | m_GENERIC)
+ | m_INTEL | m_K6_GEODE | m_AMD_MULTIPLE | m_ZHAOXIN | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
+ | m_GENERIC)
/* X86_TUNE_PARTIAL_REG_DEPENDENCY: Enable more register renaming
on modern chips. Prefer stores affecting whole integer register
@@ -52,8 +52,8 @@ DEF_TUNE (X86_TUNE_SCHEDULE, "schedule",
DEF_TUNE (X86_TUNE_PARTIAL_REG_DEPENDENCY, "partial_reg_dependency",
m_P4_NOCONA | m_CORE2 | m_NEHALEM | m_SANDYBRIDGE | m_CORE_AVX2
| m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL
- | m_KNL | m_KNM | m_AMD_MULTIPLE | m_ZHAOXIN | m_TREMONT
- | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
+ | m_AMD_MULTIPLE | m_ZHAOXIN | m_TREMONT | m_CORE_HYBRID
+ | m_CORE_ATOM | m_GENERIC)
/* X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY: This knob promotes all store
destinations to be 128bit to allow register renaming on 128bit SSE units,
@@ -112,7 +112,7 @@ DEF_TUNE (X86_TUNE_PARTIAL_FLAG_REG_STALL, "partial_flag_reg_stall",
partial dependencies. */
DEF_TUNE (X86_TUNE_MOVX, "movx",
m_PPRO | m_P4_NOCONA | m_CORE2 | m_NEHALEM | m_SANDYBRIDGE
- | m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_KNL | m_KNM | m_INTEL
+ | m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_INTEL
| m_GOLDMONT_PLUS | m_GEODE | m_AMD_MULTIPLE | m_ZHAOXIN
| m_CORE_AVX2 | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
@@ -120,8 +120,8 @@ DEF_TUNE (X86_TUNE_MOVX, "movx",
full sized loads. */
DEF_TUNE (X86_TUNE_MEMORY_MISMATCH_STALL, "memory_mismatch_stall",
m_P4_NOCONA | m_CORE_ALL | m_BONNELL | m_SILVERMONT | m_INTEL
- | m_KNL | m_KNM | m_GOLDMONT | m_GOLDMONT_PLUS | m_AMD_MULTIPLE
- | m_ZHAOXIN | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
+ | m_GOLDMONT | m_GOLDMONT_PLUS | m_AMD_MULTIPLE | m_ZHAOXIN
+ | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
/* X86_TUNE_FUSE_CMP_AND_BRANCH_32: Fuse compare with a subsequent
conditional jump instruction for 32 bit TARGET. */
@@ -161,7 +161,7 @@ DEF_TUNE (X86_TUNE_FUSE_ALU_AND_BRANCH, "fuse_alu_and_branch",
to happen in parallel. */
DEF_TUNE (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, "accumulate_outgoing_args",
- m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_KNL | m_KNM | m_INTEL
+ m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_INTEL
| m_GOLDMONT | m_GOLDMONT_PLUS | m_ATHLON_K8 | m_ZHAOXIN)
/* X86_TUNE_PROLOGUE_USING_MOVE: Do not use push/pop in prologues that are
@@ -224,8 +224,8 @@ DEF_TUNE (X86_TUNE_PAD_RETURNS, "pad_returns",
/* X86_TUNE_FOUR_JUMP_LIMIT: Some CPU cores are not able to predict more
than 4 branch instructions in the 16 byte window. */
DEF_TUNE (X86_TUNE_FOUR_JUMP_LIMIT, "four_jump_limit",
- m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_KNL | m_KNM
- | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL | m_ATHLON_K8 | m_AMDFAM10)
+ m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_INTEL | m_ATHLON_K8 | m_AMDFAM10)
/*****************************************************************************/
/* Integer instruction selection tuning */
@@ -253,7 +253,7 @@ DEF_TUNE (X86_TUNE_READ_MODIFY, "read_modify", ~(m_PENT | m_LAKEMONT | m_PPRO))
done by GCC generated code. */
DEF_TUNE (X86_TUNE_USE_INCDEC, "use_incdec",
~(m_P4_NOCONA | m_CORE2 | m_NEHALEM | m_SANDYBRIDGE
- | m_BONNELL | m_SILVERMONT | m_INTEL | m_KNL | m_KNM | m_GOLDMONT
+ | m_BONNELL | m_SILVERMONT | m_INTEL | m_GOLDMONT
| m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
| m_ZHAOXIN | m_GENERIC))
@@ -261,19 +261,18 @@ DEF_TUNE (X86_TUNE_USE_INCDEC, "use_incdec",
for DFmode copies */
DEF_TUNE (X86_TUNE_INTEGER_DFMODE_MOVES, "integer_dfmode_moves",
~(m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_BONNELL | m_SILVERMONT
- | m_KNL | m_KNM | m_INTEL | m_GEODE | m_AMD_MULTIPLE | m_ZHAOXIN
- | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
- | m_CORE_ATOM | m_GENERIC))
+ | m_INTEL | m_GEODE | m_AMD_MULTIPLE | m_ZHAOXIN | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
+ | m_GENERIC))
/* X86_TUNE_OPT_AGU: Optimize for Address Generation Unit. This flag
will impact LEA instruction selection. */
-DEF_TUNE (X86_TUNE_OPT_AGU, "opt_agu", m_BONNELL | m_SILVERMONT | m_KNL
- | m_KNM | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL | m_ZHAOXIN)
+DEF_TUNE (X86_TUNE_OPT_AGU, "opt_agu", m_BONNELL | m_SILVERMONT | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_INTEL | m_ZHAOXIN)
/* X86_TUNE_AVOID_LEA_FOR_ADDR: Avoid lea for address computation. */
DEF_TUNE (X86_TUNE_AVOID_LEA_FOR_ADDR, "avoid_lea_for_addr",
- m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS
- | m_KNL | m_KNM)
+ m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS)
/* X86_TUNE_SLOW_IMUL_IMM32_MEM: Imul of 32-bit constant and memory is
vector path on AMD machines.
@@ -290,8 +289,7 @@ DEF_TUNE (X86_TUNE_SLOW_IMUL_IMM8, "slow_imul_imm8",
/* X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE: Try to avoid memory operands for
a conditional move. */
DEF_TUNE (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE, "avoid_mem_opnd_for_cmove",
- m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_KNL
- | m_KNM | m_INTEL)
+ m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL)
/* X86_TUNE_SINGLE_STRINGOP: Enable use of single string operations, such
as MOVS and STOS (without a REP prefix) to move/set sequences of bytes. */
@@ -316,22 +314,21 @@ DEF_TUNE (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES,
/* X86_TUNE_USE_SAHF: Controls use of SAHF. */
DEF_TUNE (X86_TUNE_USE_SAHF, "use_sahf",
- m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_BONNELL | m_SILVERMONT
- | m_KNL | m_KNM | m_INTEL | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_BDVER
- | m_BTVER | m_ZNVER | m_ZHAOXIN | m_GOLDMONT | m_GOLDMONT_PLUS
- | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
+ m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_BONNELL | m_SILVERMONT
+ | m_INTEL | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_BDVER | m_BTVER
+ | m_ZNVER | m_ZHAOXIN | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT
+ | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
/* X86_TUNE_USE_CLTD: Controls use of CLTD and CTQO instructions. */
DEF_TUNE (X86_TUNE_USE_CLTD, "use_cltd",
- ~(m_PENT | m_LAKEMONT | m_BONNELL | m_SILVERMONT | m_KNL | m_KNM | m_INTEL
+ ~(m_PENT | m_LAKEMONT | m_BONNELL | m_SILVERMONT | m_INTEL
| m_K6 | m_GOLDMONT | m_GOLDMONT_PLUS))
/* X86_TUNE_USE_BT: Enable use of BT (bit test) instructions. */
DEF_TUNE (X86_TUNE_USE_BT, "use_bt",
- m_CORE_ALL | m_BONNELL | m_SILVERMONT | m_KNL | m_KNM | m_INTEL
- | m_LAKEMONT | m_AMD_MULTIPLE | m_ZHAOXIN | m_GOLDMONT
- | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
- | m_GENERIC)
+ m_CORE_ALL | m_BONNELL | m_SILVERMONT | m_INTEL | m_LAKEMONT
+ | m_AMD_MULTIPLE | m_ZHAOXIN | m_GOLDMONT | m_GOLDMONT_PLUS
+ | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC)
/* X86_TUNE_AVOID_FALSE_DEP_FOR_BMI: Avoid false dependency
for bit-manipulation instructions. */
@@ -349,9 +346,8 @@ DEF_TUNE (X86_TUNE_ADJUST_UNROLL, "adjust_unroll_factor", m_BDVER3 | m_BDVER4)
/* X86_TUNE_ONE_IF_CONV_INSNS: Restrict a number of cmov insns in
if-converted sequence to one. */
DEF_TUNE (X86_TUNE_ONE_IF_CONV_INSN, "one_if_conv_insn",
- m_SILVERMONT | m_KNL | m_KNM | m_INTEL | m_CORE_ALL | m_GOLDMONT
- | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
- | m_ZHAOXIN | m_GENERIC)
+ m_SILVERMONT | m_INTEL | m_CORE_ALL | m_GOLDMONT | m_GOLDMONT_PLUS
+ | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM | m_ZHAOXIN | m_GENERIC)
/* X86_TUNE_AVOID_MFENCE: Use lock prefixed instructions instead of mfence. */
DEF_TUNE (X86_TUNE_AVOID_MFENCE, "avoid_mfence",
@@ -362,8 +358,7 @@ DEF_TUNE (X86_TUNE_AVOID_MFENCE, "avoid_mfence",
generating instructions for abs (x) = (((signed) x >> (W-1) ^ x) -
(signed) x >> (W-1)) instead of cmove or SSE max/abs instructions. */
DEF_TUNE (X86_TUNE_EXPAND_ABS, "expand_abs",
- m_CORE_ALL | m_SILVERMONT | m_KNL | m_KNM | m_GOLDMONT
- | m_GOLDMONT_PLUS | m_ZHAOXIN)
+ m_CORE_ALL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_ZHAOXIN)
/*****************************************************************************/
/* 387 instruction selection tuning */
@@ -379,9 +374,9 @@ DEF_TUNE (X86_TUNE_USE_HIMODE_FIOP, "use_himode_fiop",
integer operand. */
DEF_TUNE (X86_TUNE_USE_SIMODE_FIOP, "use_simode_fiop",
~(m_PENT | m_LAKEMONT | m_PPRO | m_CORE_ALL | m_BONNELL
- | m_SILVERMONT | m_KNL | m_KNM | m_INTEL | m_AMD_MULTIPLE
- | m_ZHAOXIN | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT
- | m_CORE_HYBRID | m_CORE_ATOM | m_GENERIC))
+ | m_SILVERMONT | m_INTEL | m_AMD_MULTIPLE | m_ZHAOXIN | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
+ | m_GENERIC))
/* X86_TUNE_USE_FFREEP: Use freep instruction instead of fstp. */
DEF_TUNE (X86_TUNE_USE_FFREEP, "use_ffreep", m_AMD_MULTIPLE | m_ZHAOXIN)
@@ -389,9 +384,9 @@ DEF_TUNE (X86_TUNE_USE_FFREEP, "use_ffreep", m_AMD_MULTIPLE | m_ZHAOXIN)
/* X86_TUNE_EXT_80387_CONSTANTS: Use fancy 80387 constants, such as PI. */
DEF_TUNE (X86_TUNE_EXT_80387_CONSTANTS, "ext_80387_constants",
m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_BONNELL | m_SILVERMONT
- | m_KNL | m_KNM | m_INTEL | m_K6_GEODE | m_ATHLON_K8 | m_ZHAOXIN
- | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
- | m_CORE_ATOM | m_GENERIC)
+ | m_INTEL | m_K6_GEODE | m_ATHLON_K8 | m_ZHAOXIN | m_GOLDMONT
+ | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID | m_CORE_ATOM
+ | m_GENERIC)
/*****************************************************************************/
/* SSE instruction selection tuning */
@@ -405,15 +400,15 @@ DEF_TUNE (X86_TUNE_GENERAL_REGS_SSE_SPILL, "general_regs_sse_spill",
/* X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL: Use movups for misaligned loads instead
of a sequence loading registers by parts. */
DEF_TUNE (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, "sse_unaligned_load_optimal",
- m_NEHALEM | m_SANDYBRIDGE | m_CORE_AVX2 | m_SILVERMONT | m_KNL | m_KNM
- | m_INTEL | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
+ m_NEHALEM | m_SANDYBRIDGE | m_CORE_AVX2 | m_SILVERMONT | m_INTEL
+ | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
| m_CORE_ATOM | m_AMDFAM10 | m_BDVER | m_BTVER | m_ZNVER | m_ZHAOXIN
| m_GENERIC)
/* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL: Use movups for misaligned stores
instead of a sequence loading registers by parts. */
DEF_TUNE (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL, "sse_unaligned_store_optimal",
- m_NEHALEM | m_SANDYBRIDGE | m_CORE_AVX2 | m_SILVERMONT | m_KNL | m_KNM
+ m_NEHALEM | m_SANDYBRIDGE | m_CORE_AVX2 | m_SILVERMONT
| m_INTEL | m_GOLDMONT | m_GOLDMONT_PLUS | m_TREMONT | m_CORE_HYBRID
| m_CORE_ATOM | m_BDVER | m_ZNVER | m_ZHAOXIN | m_GENERIC)
@@ -457,8 +452,7 @@ DEF_TUNE (X86_TUNE_INTER_UNIT_CONVERSIONS, "inter_unit_conversions",
/* X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS: Try to split memory operand for
fp converts to destination register. */
DEF_TUNE (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS, "split_mem_opnd_for_fp_converts",
- m_SILVERMONT | m_KNL | m_KNM | m_GOLDMONT | m_GOLDMONT_PLUS
- | m_INTEL)
+ m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL)
/* X86_TUNE_USE_VECTOR_FP_CONVERTS: Prefer vector packed SSE conversion
from FP to FP. This form of instructions avoids partial write to the
@@ -472,8 +466,7 @@ DEF_TUNE (X86_TUNE_USE_VECTOR_CONVERTS, "use_vector_converts", m_AMDFAM10)
/* X86_TUNE_SLOW_SHUFB: Indicates tunings with slow pshufb instruction. */
DEF_TUNE (X86_TUNE_SLOW_PSHUFB, "slow_pshufb",
- m_BONNELL | m_SILVERMONT | m_KNL | m_KNM | m_GOLDMONT
- | m_GOLDMONT_PLUS | m_INTEL)
+ m_BONNELL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_INTEL)
/* X86_TUNE_AVOID_4BYTE_PREFIXES: Avoid instructions requiring 4+ bytes of prefixes. */
DEF_TUNE (X86_TUNE_AVOID_4BYTE_PREFIXES, "avoid_4byte_prefixes",
@@ -708,10 +701,6 @@ DEF_TUNE (X86_TUNE_QIMODE_MATH, "qimode_math", m_ALL)
is usually used for RISC targets. */
DEF_TUNE (X86_TUNE_PROMOTE_QI_REGS, "promote_qi_regs", m_NONE)
-/* X86_TUNE_EMIT_VZEROUPPER: This enables vzeroupper instruction insertion
- before a transfer of control flow out of the function. */
-DEF_TUNE (X86_TUNE_EMIT_VZEROUPPER, "emit_vzeroupper", ~m_KNL)
-
/* X86_TUNE_SLOW_STC: This disables use of stc, clc and cmc carry flag
modifications on architectures where theses operations are slow. */
DEF_TUNE (X86_TUNE_SLOW_STC, "slow_stc", m_PENT4)
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index 9e20f262839..87515ecb218 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -40,7 +40,6 @@ enum _mm_hint
_MM_HINT_IT1 = 18,
/* _MM_HINT_ET is _MM_HINT_T with set 3rd bit. */
_MM_HINT_ET0 = 7,
- _MM_HINT_ET1 = 6,
_MM_HINT_T0 = 3,
_MM_HINT_T1 = 2,
_MM_HINT_T2 = 1,
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 267fccd1512..8786249fb6f 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -6945,16 +6945,6 @@ Enable/disable the generation of the AVX instructions.
@itemx no-avx2
Enable/disable the generation of the AVX2 instructions.
-@cindex @code{target("avx5124fmaps")} function attribute, x86
-@item avx5124fmaps
-@itemx no-avx5124fmaps
-Enable/disable the generation of the AVX5124FMAPS instructions.
-
-@cindex @code{target("avx5124vnniw")} function attribute, x86
-@item avx5124vnniw
-@itemx no-avx5124vnniw
-Enable/disable the generation of the AVX5124VNNIW instructions.
-
@cindex @code{target("avx512bitalg")} function attribute, x86
@item avx512bitalg
@itemx no-avx512bitalg
@@ -6990,11 +6980,6 @@ Enable/disable the generation of the AVX512F instructions.
@itemx no-avx512ifma
Enable/disable the generation of the AVX512IFMA instructions.
-@cindex @code{target("avx512pf")} function attribute, x86
-@item avx512pf
-@itemx no-avx512pf
-Enable/disable the generation of the AVX512PF instructions.
-
@cindex @code{target("avx512vbmi")} function attribute, x86
@item avx512vbmi
@itemx no-avx512vbmi
@@ -7160,11 +7145,6 @@ Enable/disable the generation of the PKU instructions.
@itemx no-popcnt
Enable/disable the generation of the POPCNT instruction.
-@cindex @code{target("prefetchwt1")} function attribute, x86
-@item prefetchwt1
-@itemx no-prefetchwt1
-Enable/disable the generation of the PREFETCHWT1 instructions.
-
@cindex @code{target("prfchw")} function attribute, x86
@item prfchw
@itemx no-prfchw
@@ -26167,12 +26147,6 @@ Intel Atom Grand Ridge CPU.
@item clearwaterforest
Intel Atom Clearwater Forest CPU.
-@item knl
-Intel Knights Landing CPU.
-
-@item knm
-Intel Knights Mill CPU.
-
@item lujiazui
ZHAOXIN lujiazui CPU.
@@ -26301,18 +26275,10 @@ AVX512BW instructions.
AVX512DQ instructions.
@item avx512cd
AVX512CD instructions.
-@item avx512er
-AVX512ER instructions.
-@item avx512pf
-AVX512PF instructions.
@item avx512vbmi
AVX512VBMI instructions.
@item avx512ifma
AVX512IFMA instructions.
-@item avx5124vnniw
-AVX5124VNNIW instructions.
-@item avx5124fmaps
-AVX5124FMAPS instructions.
@item avx512vpopcntdq
AVX512VPOPCNTDQ instructions.
@item avx512vbmi2
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 70e8004a71b..218901c0b20 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1459,17 +1459,17 @@ See RS/6000 and PowerPC Options.
-mmove-max=@var{bits} -mstore-max=@var{bits}
-mnoreturn-no-callee-saved-registers
-mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx
--mavx2 -mavx512f -mavx512pf -mavx512er -mavx512cd -mavx512vl
+-mavx2 -mavx512f -mavx512cd -mavx512vl
-mavx512bw -mavx512dq -mavx512ifma -mavx512vbmi -msha -maes
-mpclmul -mfsgsbase -mrdrnd -mf16c -mfma -mpconfig -mwbnoinvd
--mptwrite -mprefetchwt1 -mclflushopt -mclwb -mxsavec -mxsaves
+-mptwrite -mclflushopt -mclwb -mxsavec -mxsaves
-msse4a -m3dnow -m3dnowa -mpopcnt -mabm -mbmi -mtbm -mfma4 -mxop
-madx -mlzcnt -mbmi2 -mfxsr -mxsave -mxsaveopt -mrtm -mhle -mlwp
-mmwaitx -mclzero -mpku -mthreads -mgfni -mvaes -mwaitpkg
-mshstk -mmanual-endbr -mcet-switch -mforce-indirect-call
-mavx512vbmi2 -mavx512bf16 -menqcmd
-mvpclmulqdq -mavx512bitalg -mmovdiri -mmovdir64b -mavx512vpopcntdq
--mavx5124fmaps -mavx512vnni -mavx5124vnniw -mprfchw -mrdpid
+-mavx512vnni -mprfchw -mrdpid
-mrdseed -msgx -mavx512vp2intersect -mserialize -mtsxldtrk
-mamx-tile -mamx-int8 -mamx-bf16 -muintr -mhreset -mavxvnni
-mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16
@@ -34475,19 +34475,6 @@ LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16,
SHA512, SM3, SM4, USER_MSR and PREFETCHI instruction set support.
-@item knl
-Intel Knight's Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
-RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
-AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1 instruction set support.
-
-@item knm
-Intel Knights Mill CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
-RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
-AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1, AVX5124VNNIW,
-AVX5124FMAPS and AVX512VPOPCNTDQ instruction set support.
-
@item skylake-avx512
Intel Skylake Server CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
@@ -35249,12 +35236,6 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@opindex mavx512f
@itemx -mavx512f
@need 200
-@opindex mavx512pf
-@itemx -mavx512pf
-@need 200
-@opindex mavx512er
-@itemx -mavx512er
-@need 200
@opindex mavx512cd
@itemx -mavx512cd
@need 200
@@ -35318,9 +35299,6 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@opindex mrdpid
@itemx -mrdpid
@need 200
-@opindex mprefetchwt1
-@itemx -mprefetchwt1
-@need 200
@opindex mrdseed
@itemx -mrdseed
@need 200
@@ -35434,18 +35412,12 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@opindex mavx512vp2intersect
@itemx -mavx512vp2intersect
@need 200
-@opindex mavx5124fmaps
-@itemx -mavx5124fmaps
-@need 200
@opindex mavx512vnni
@itemx -mavx512vnni
@need 200
@opindex mavxvnni
@itemx -mavxvnni
@need 200
-@opindex mavx5124vnniw
-@itemx -mavx5124vnniw
-@need 200
@opindex mcldemote
@itemx -mcldemote
@need 200
@@ -35520,18 +35492,17 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@opindex mavx10.1-512
@itemx -mavx10.1-512
These switches enable the use of instructions in the MMX, SSE,
-AVX512ER, AVX512CD, AVX512VL, AVX512BW, AVX512DQ, AVX512IFMA, AVX512VBMI, SHA,
-AES, PCLMUL, CLFLUSHOPT, CLWB, FSGSBASE, PTWRITE, RDRND, F16C, FMA, PCONFIG,
-WBNOINVD, FMA4, PREFETCHW, RDPID, PREFETCHWT1, RDSEED, SGX, XOP, LWP,
-3DNow!@:, enhanced 3DNow!@:, POPCNT, ABM, ADX, BMI, BMI2, LZCNT, FXSR, XSAVE,
-XSAVEOPT, XSAVEC, XSAVES, RTM, HLE, TBM, MWAITX, CLZERO, PKU, AVX512VBMI2,
-GFNI, VAES, WAITPKG, VPCLMULQDQ, AVX512BITALG, MOVDIRI, MOVDIR64B, AVX512BF16,
-ENQCMD, AVX512VPOPCNTDQ, AVX5124FMAPS, AVX512VNNI, AVX5124VNNIW, SERIALIZE,
-UINTR, HRESET, AMXTILE, AMXINT8, AMXBF16, KL, WIDEKL, AVXVNNI, AVX512-FP16,
-AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AMX-FP16, PREFETCHI, RAOINT,
-AMX-COMPLEX, AVXVNNIINT16, SM3, SHA512, SM4, APX_F, USER_MSR, AVX10.1 or
-CLDEMOTE extended instruction sets. Each has a corresponding @option{-mno-}
-option to disable use of these instructions.
+AVX512CD, AVX512VL, AVX512BW, AVX512DQ, AVX512IFMA, AVX512VBMI, SHA, AES,
+PCLMUL, CLFLUSHOPT, CLWB, FSGSBASE, PTWRITE, RDRND, F16C, FMA, PCONFIG,
+WBNOINVD, FMA4, PREFETCHW, RDPID, RDSEED, SGX, XOP, LWP, 3DNow!@:,
+enhanced 3DNow!@:, POPCNT, ABM, ADX, BMI, BMI2, LZCNT, FXSR, XSAVE, XSAVEOPT,
+XSAVEC, XSAVES, RTM, HLE, TBM, MWAITX, CLZERO, PKU, AVX512VBMI2, GFNI, VAES,
+WAITPKG, VPCLMULQDQ, AVX512BITALG, MOVDIRI, MOVDIR64B, AVX512BF16, ENQCMD,
+AVX512VPOPCNTDQ, AVX512VNNI, SERIALIZE, UINTR, HRESET, AMXTILE, AMXINT8,
+AMXBF16, KL, WIDEKL, AVXVNNI, AVX512-FP16, AVXIFMA, AVXVNNIINT8, AVXNECONVERT,
+CMPCCXADD, AMX-FP16, PREFETCHI, RAOINT, AMX-COMPLEX, AVXVNNIINT16, SM3, SHA512,
+SM4, APX_F, USER_MSR, AVX10.1 or CLDEMOTE extended instruction sets. Each has
+a corresponding @option{-mno-} option to disable use of these instructions.
These extensions are also available as built-in functions: see
@ref{x86 Built-in Functions}, for details of the functions enabled and
diff --git a/gcc/testsuite/g++.dg/other/i386-2.C b/gcc/testsuite/g++.dg/other/i386-2.C
index b1c59579455..3f3df902b56 100644
--- a/gcc/testsuite/g++.dg/other/i386-2.C
+++ b/gcc/testsuite/g++.dg/other/i386-2.C
@@ -1,10 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
+/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512cd -msha -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
xopintrin.h, abmintrin.h, bmiintrin.h, tbmintrin.h, lwpintrin.h,
diff --git a/gcc/testsuite/g++.dg/other/i386-3.C b/gcc/testsuite/g++.dg/other/i386-3.C
index f7b6d18a20e..50df2d71715 100644
--- a/gcc/testsuite/g++.dg/other/i386-3.C
+++ b/gcc/testsuite/g++.dg/other/i386-3.C
@@ -1,10 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
+/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512cd -msha -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
xopintrin.h, abmintrin.h, bmiintrin.h, tbmintrin.h, lwpintrin.h,
diff --git a/gcc/testsuite/g++.target/i386/mv28.C b/gcc/testsuite/g++.target/i386/mv28.C
index adc53962ee5..9a0419c058d 100644
--- a/gcc/testsuite/g++.target/i386/mv28.C
+++ b/gcc/testsuite/g++.target/i386/mv28.C
@@ -5,12 +5,8 @@ void __attribute__ ((target("avx512vl"))) foo () {} /* { dg-error "ISA '\[^\n\r\
void __attribute__ ((target("avx512bw"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512dq"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512cd"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
-void __attribute__ ((target("avx512er"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
-void __attribute__ ((target("avx512pf"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512vbmi"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512ifma"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
-void __attribute__ ((target("avx5124vnniw"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
-void __attribute__ ((target("avx5124fmaps"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512vpopcntdq"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("avx512vbmi2"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
void __attribute__ ((target("gfni"))) foo () {} /* { dg-error "ISA '\[^\n\r\]*' is not supported in 'target' attribute, use 'arch=' syntax" } */
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c
deleted file mode 100644
index 3c3c9f619ad..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "v4fmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-__m512 a, b, c, d, e, f, g, x1, x2, x3;
-__m128 *mem;
-__mmask16 m;
-
-int foo ()
-{
- x1 = _mm512_4fmadd_ps (a, b, c, d, e, mem);
- x2 = _mm512_mask_4fmadd_ps (a, m, b, c, d, e, mem);
- x3 = _mm512_maskz_4fmadd_ps (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c
deleted file mode 100644
index ad453975b38..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddps-2.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-require-effective-target avx5124fmaps } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#define ESP_FLOAT 1.0
-
-#define AVX5124FMAPS
-#include "avx512f-helper.h"
-
-#define SIZE (AVX512F_LEN / 32)
-
-#include "avx512f-mask-type.h"
-
-void
-CALC (float *src1, float* src2, float *src3,
- float *src4, float* prev_dst, float *mult, float *dst)
-{
- int i;
-
- for (i = 0; i < SIZE; i++)
- {
- dst[i] = (double)prev_dst[i]
- + (double)src1[i] * (double)mult[0]
- + (double)src2[i] * (double)mult[1]
- + (double)src3[i] * (double)mult[2]
- + (double)src4[i] * (double)mult[3];
- }
-}
-
-void
-TEST (void)
-{
- int i, sign;
- UNION_TYPE (AVX512F_LEN,) src1, src2, src3, src4, src5, dst, res1, res2, res3;
- UNION_TYPE (128,) mult;
- MASK_TYPE mask = MASK_VALUE;
- float res_ref[SIZE];
-
- sign = -1;
- for (i = 0; i < SIZE; i++)
- {
- src1.a[i] = 1.5 + 34.67 * i * sign;
- src2.a[i] = -22.17 * i * sign;
- src3.a[i] = src1.a[i] * src1.a[i];
- src4.a[i] = src2.a[i] * src2.a[i];
- sign = sign * -1;
- }
- for (i = 0; i < 4; i++)
- mult.a[i] = 3.1415 + i * 2.71828;
-
- for (i = 0; i < SIZE; i++)
- src5.a[i] = DEFAULT_VALUE;
-
- CALC (src1.a, src2.a, src3.a, src4.a, src5.a, mult.a, res_ref);
-
- res1.x = INTRINSIC (_4fmadd_ps) ( src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res2.x = INTRINSIC (_mask_4fmadd_ps) (src5.x, mask, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res3.x = INTRINSIC (_maskz_4fmadd_ps) (mask, src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
-
- if (UNION_FP_CHECK (AVX512F_LEN,) (res1, res_ref))
- abort ();
-
- MASK_MERGE () (res_ref, mask, SIZE);
- if (UNION_FP_CHECK (AVX512F_LEN,) (res2, res_ref))
- abort ();
-
- MASK_ZERO () (res_ref, mask, SIZE);
- if (UNION_FP_CHECK (AVX512F_LEN,) (res3, res_ref))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c
deleted file mode 100644
index 53830420afa..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fmaddss-1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "v4fmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-__m128 a, b, c, d, e, f, x1, x2, x3;
-__m128 *mem;
-__mmask8 m;
-
-int foo ()
-{
- x1 = _mm_4fmadd_ss (a, b, c, d, e, mem);
- x2 = _mm_mask_4fmadd_ss (a, m, b, c, d, e, mem);
- x3 = _mm_maskz_4fmadd_ss (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c
deleted file mode 100644
index acb666b3093..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "v4fnmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fnmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fnmaddps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-__m512 a, b, c, d, e, f, g, x1, x2, x3;
-__m128 *mem;
-__mmask16 m;
-
-int foo ()
-{
- x1 = _mm512_4fnmadd_ps (a, b, c, d, e, mem);
- x2 = _mm512_mask_4fnmadd_ps (a, m, b, c, d, e, mem);
- x3 = _mm512_maskz_4fnmadd_ps (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c
deleted file mode 100644
index 5dcdfe48c0a..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-require-effective-target avx5124fmaps } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#define ESP_FLOAT 1.0
-
-#define AVX5124FMAPS
-#include "avx512f-helper.h"
-
-#define SIZE (AVX512F_LEN / 32)
-
-#include "avx512f-mask-type.h"
-
-void
-CALC (float *src1, float* src2, float *src3,
- float *src4, float* prev_dst, float *mult, float *dst)
-{
- int i;
-
- for (i = 0; i < SIZE; i++)
- {
- dst[i] = (double)prev_dst[i]
- - (double)src1[i] * (double)mult[0]
- - (double)src2[i] * (double)mult[1]
- - (double)src3[i] * (double)mult[2]
- - (double)src4[i] * (double)mult[3];
- }
-}
-
-void
-TEST (void)
-{
- int i, sign;
- UNION_TYPE (AVX512F_LEN,) src1, src2, src3, src4, src5, dst, res1, res2, res3;
- UNION_TYPE (128,) mult;
- MASK_TYPE mask = MASK_VALUE;
- float res_ref[SIZE];
-
- sign = -1;
- for (i = 0; i < SIZE; i++)
- {
- src1.a[i] = 1.5 + 34.67 * i * sign;
- src2.a[i] = -22.17 * i * sign;
- src3.a[i] = src1.a[i] * src1.a[i];
- src4.a[i] = src2.a[i] * src2.a[i];
- sign = sign * -1;
- }
- for (i = 0; i < 4; i++)
- mult.a[i] = 3.1415 + i * 2.71828;
-
- for (i = 0; i < SIZE; i++)
- src5.a[i] = DEFAULT_VALUE;
-
- CALC (src1.a, src2.a, src3.a, src4.a, src5.a, mult.a, res_ref);
-
- res1.x = INTRINSIC (_4fnmadd_ps) ( src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res2.x = INTRINSIC (_mask_4fnmadd_ps) (src5.x, mask, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res3.x = INTRINSIC (_maskz_4fnmadd_ps) (mask, src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
-
- if (UNION_FP_CHECK (AVX512F_LEN,) (res1, res_ref))
- abort ();
-
- MASK_MERGE () (res_ref, mask, SIZE);
- if (UNION_FP_CHECK (AVX512F_LEN,) (res2, res_ref))
- abort ();
-
- MASK_ZERO () (res_ref, mask, SIZE);
- if (UNION_FP_CHECK (AVX512F_LEN,) (res3, res_ref))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c b/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c
deleted file mode 100644
index bfeb46dc9a1..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124fmaps" } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "v4fnmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fnmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "v4fnmaddss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-
-#include
-
-__m128 a, b, c, d, e, f, x1, x2, x3;
-__m128 *mem;
-__mmask8 m;
-
-int foo ()
-{
- x1 = _mm_4fnmadd_ss (a, b, c, d, e, mem);
- x2 = _mm_mask_4fnmadd_ss (a, m, b, c, d, e, mem);
- x3 = _mm_maskz_4fnmadd_ss (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c b/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c
deleted file mode 100644
index bcabfac416f..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124vnniw" } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vp4dpwssd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vp4dpwssd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vp4dpwssd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-__m512i a, b, c, d, e, f, g, x1, x2, x3;
-__m128i *mem;
-__mmask16 m;
-
-int foo ()
-{
- x1 = _mm512_4dpwssd_epi32 (a, b, c, d, e, mem);
- x2 = _mm512_mask_4dpwssd_epi32 (a, m, b, c, d, e, mem);
- x3 = _mm512_maskz_4dpwssd_epi32 (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c b/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c
deleted file mode 100644
index 9044ce5ea19..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -mavx5124vnniw" } */
-/* { dg-require-effective-target avx5124vnniw } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#define AVX5124VNNIW
-#include "avx512f-helper.h"
-
-#define SIZE (AVX512F_LEN / 32)
-
-#include "avx512f-mask-type.h"
-
-void
-CALC (short *src1, short* src2, short *src3,
- short *src4, int* prev_dst, short *mult, int *dst)
-{
- int i;
-
- for (i = 0; i < SIZE; i++)
- {
- int p1dword, p2dword;
- dst[i] = prev_dst[i];
- p1dword = (int)(src1[2*i ]) * (int)(mult[0]);
- p2dword = (int)(src1[2*i+1]) * (int)(mult[1]);
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src2[2*i ]) * (int)(mult[2]);
- p2dword = (int)(src2[2*i+1]) * (int)(mult[3]);
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src3[2*i ]) * (int)(mult[4]);
- p2dword = (int)(src3[2*i+1]) * (int)(mult[5]);
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src4[2*i ]) * (int)(mult[6]);
- p2dword = (int)(src4[2*i+1]) * (int)(mult[7]);
- dst[i] += p1dword + p2dword;
- }
-}
-
-void
-TEST (void)
-{
- int i;
- UNION_TYPE (AVX512F_LEN, i_w) src1, src2, src3, src4;
- UNION_TYPE (AVX512F_LEN, i_d) src5, dst, res1, res2, res3;
- UNION_TYPE (128, i_w) mult;
- MASK_TYPE mask = MASK_VALUE;
- int res_ref[SIZE];
-
- for (i = 0; i < SIZE * 2; i++)
- {
- src1.a[i] = 2 + 7 * i % 291;
- src2.a[i] = 3 + 11 * (i % 377) * i;
- src3.a[i] = src1.a[i] * src1.a[i];
- src4.a[i] = src2.a[i] * src2.a[i];
- }
- for (i = 0; i < 8; i++)
- mult.a[i] = 3 + i * 2;
-
- for (i = 0; i < SIZE; i++)
- src5.a[i] = DEFAULT_VALUE;
-
- CALC (src1.a, src2.a, src3.a, src4.a, src5.a, mult.a, res_ref);
-
- res1.x = INTRINSIC (_4dpwssd_epi32) ( src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res2.x = INTRINSIC (_mask_4dpwssd_epi32) (src5.x, mask, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res3.x = INTRINSIC (_maskz_4dpwssd_epi32) (mask, src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
-
- if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
- abort ();
-
- MASK_MERGE (i_d) (res_ref, mask, SIZE);
- if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
- abort ();
-
- MASK_ZERO (i_d) (res_ref, mask, SIZE);
- if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c b/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c
deleted file mode 100644
index e3e46c53368..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -mavx5124vnniw" } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vp4dpwssds\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vp4dpwssds\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vp4dpwssds\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-__m512i a, b, c, d, e, f, g, x1, x2, x3;
-__m128i *mem;
-__mmask16 m;
-
-int foo ()
-{
- x1 = _mm512_4dpwssds_epi32 (a, b, c, d, e, mem);
- x2 = _mm512_mask_4dpwssds_epi32 (a, m, b, c, d, e, mem);
- x3 = _mm512_maskz_4dpwssds_epi32 (m, a, b, c, d, e, mem);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c b/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c
deleted file mode 100644
index 193477c9864..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O2 -mavx5124vnniw" } */
-/* { dg-require-effective-target avx5124vnniw } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#define DEFAULT_VALUE 0x7ffffffe
-
-#define AVX5124VNNIW
-#include "avx512f-helper.h"
-
-#define SIZE (AVX512F_LEN / 32)
-
-#include "avx512f-mask-type.h"
-
-void
-CALC (short *src1, short* src2, short *src3,
- short *src4, int* prev_dst, short *mult, int *dst)
-{
- int i;
-
- for (i = 0; i < SIZE; i++)
- {
- int p1dword, p2dword;
- long long int tmp;
- dst[i] = prev_dst[i];
- p1dword = (int)(src1[2*i ]) * (int)(mult[0]);
- p2dword = (int)(src1[2*i+1]) * (int)(mult[1]);
- tmp = (long long)dst[i] + p1dword + p2dword;
- if (tmp > 0x7fffffff)
- dst[i] = 0x7fffffff;
- else
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src2[2*i ]) * (int)(mult[2]);
- p2dword = (int)(src2[2*i+1]) * (int)(mult[3]);
- tmp = (long long)dst[i] + p1dword + p2dword;
- if (tmp > 0x7fffffff)
- dst[i] = 0x7fffffff;
- else
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src3[2*i ]) * (int)(mult[4]);
- p2dword = (int)(src3[2*i+1]) * (int)(mult[5]);
- tmp = (long long)dst[i] + p1dword + p2dword;
- if (tmp > 0x7fffffff)
- dst[i] = 0x7fffffff;
- else
- dst[i] += p1dword + p2dword;
-
- p1dword = (int)(src4[2*i ]) * (int)(mult[6]);
- p2dword = (int)(src4[2*i+1]) * (int)(mult[7]);
- tmp = (long long)dst[i] + p1dword + p2dword;
- if (tmp > 0x7fffffff)
- dst[i] = 0x7fffffff;
- else
- dst[i] += p1dword + p2dword;
- }
-}
-
-void
-TEST (void)
-{
- int i;
- UNION_TYPE (AVX512F_LEN, i_w) src1, src2, src3, src4;
- UNION_TYPE (AVX512F_LEN, i_d) src5, dst, res1, res2, res3;
- UNION_TYPE (128, i_w) mult;
- MASK_TYPE mask = MASK_VALUE;
- int res_ref[SIZE];
-
- for (i = 0; i < SIZE * 2; i++)
- {
- src1.a[i] = 2 + 7 * i % 291;
- src2.a[i] = 3 + 11 * (i % 377) * i;
- src3.a[i] = src1.a[i] * src1.a[i];
- src4.a[i] = src2.a[i] * src2.a[i];
- }
- for (i = 0; i < 8; i++)
- mult.a[i] = 3 + i * 2;
-
- for (i = 0; i < SIZE; i++)
- src5.a[i] = DEFAULT_VALUE;
-
- CALC (src1.a, src2.a, src3.a, src4.a, src5.a, mult.a, res_ref);
-
- res1.x = INTRINSIC (_4dpwssds_epi32) ( src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res2.x = INTRINSIC (_mask_4dpwssds_epi32) (src5.x, mask, src1.x, src2.x, src3.x, src4.x, &mult.x);
- res3.x = INTRINSIC (_maskz_4dpwssds_epi32) (mask, src5.x, src1.x, src2.x, src3.x, src4.x, &mult.x);
-
- if (UNION_CHECK (AVX512F_LEN, i_d) (res1, res_ref))
- abort ();
-
- MASK_MERGE (i_d) (res_ref, mask, SIZE);
- if (UNION_CHECK (AVX512F_LEN, i_d) (res2, res_ref))
- abort ();
-
- MASK_ZERO (i_d) (res_ref, mask, SIZE);
- if (UNION_CHECK (AVX512F_LEN, i_d) (res3, res_ref))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-check.h b/gcc/testsuite/gcc.target/i386/avx512er-check.h
deleted file mode 100644
index eb44c2f7ade..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-check.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define AVX512ER
-#define avx512er_test test_512
-#include "avx512f-helper.h"
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c
deleted file mode 100644
index 93766d87451..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512d x;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_exp2a23_pd (x);
- x = _mm512_mask_exp2a23_pd (x, m, x);
- x = _mm512_maskz_exp2a23_pd (m, x);
- x = _mm512_exp2a23_round_pd (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_exp2a23_round_pd (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_exp2a23_round_pd (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c
deleted file mode 100644
index 20457e1fcd2..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vexp2pd-2.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-void static
-compute_vexp2pd (double *s, double *r)
-{
- int i;
- for (i = 0; i < 8; i++)
- r[i] = pow (2.0, s[i]);
-}
-
-void static
-avx512er_test (void)
-{
- union512d src, res1, res2, res3;
- __mmask8 mask = MASK_VALUE;
- double res_ref[8];
- int i;
-
- for (i = 0; i < 8; i++)
- {
- src.a[i] = 179.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_exp2a23_pd (src.x);
- res2.x = _mm512_mask_exp2a23_pd (res2.x, mask, src.x);
- res3.x = _mm512_maskz_exp2a23_pd (mask, src.x);
-
- compute_vexp2pd (src.a, res_ref);
-
- if (check_rough_union512d (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE (d) (res_ref, mask, 8);
- if (check_rough_union512d (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO (d) (res_ref, mask, 8);
- if (check_rough_union512d (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c
deleted file mode 100644
index 130a2e001c7..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vexp2ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512 x;
-volatile __mmask16 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_exp2a23_ps (x);
- x = _mm512_mask_exp2a23_ps (x, m, x);
- x = _mm512_maskz_exp2a23_ps (m, x);
- x = _mm512_exp2a23_round_ps (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_exp2a23_round_ps (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_exp2a23_round_ps (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c
deleted file mode 100644
index 6294dfffee7..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vexp2ps-2.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-void static
-compute_vexp2ps (float *s, float *r)
-{
- int i;
- for (i = 0; i < 16; i++)
- r[i] = pow (2.0, s[i]);
-}
-
-void static
-avx512er_test (void)
-{
- union512 src, res1, res2, res3;
- __mmask16 mask = MASK_VALUE;
- float res_ref[16];
- int i;
-
- for (i = 0; i < 16; i++)
- {
- src.a[i] = 79.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_exp2a23_ps (src.x);
- res2.x = _mm512_mask_exp2a23_ps (res2.x, mask, src.x);
- res3.x = _mm512_maskz_exp2a23_ps (mask, src.x);
-
- compute_vexp2ps (src.a, res_ref);
-
- if (check_rough_union512 (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE ()(res_ref, mask, 16);
- if (check_rough_union512 (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO ()(res_ref, mask, 16);
- if (check_rough_union512 (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c
deleted file mode 100644
index 8959c0544a2..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512d x;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_rcp28_pd (x);
- x = _mm512_mask_rcp28_pd (x, m, x);
- x = _mm512_maskz_rcp28_pd (m, x);
- x = _mm512_rcp28_round_pd (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_rcp28_round_pd (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_rcp28_round_pd (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c
deleted file mode 100644
index aaab1dc0eb2..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28pd-2.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-
-void static
-compute_vrcp28pd (double *s, double *r)
-{
- int i;
- for (i = 0; i < 8; i++)
- r[i] = 1.0 / s[i];
-}
-
-void static
-avx512er_test (void)
-{
- union512d src, res1, res2, res3;
- __mmask8 mask = MASK_VALUE;
- double res_ref[8];
- int i;
-
- for (i = 0; i < 8; i++)
- {
- src.a[i] = 179.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_rcp28_pd (src.x);
- res2.x = _mm512_mask_rcp28_pd (res2.x, mask, src.x);
- res3.x = _mm512_maskz_rcp28_pd (mask, src.x);
-
- compute_vrcp28pd (src.a, res_ref);
-
- if (check_rough_union512d (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE (d) (res_ref, mask, 8);
- if (check_rough_union512d (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO (d) (res_ref, mask, 8);
- if (check_rough_union512d (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c
deleted file mode 100644
index f0da889361d..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512 x;
-volatile __mmask16 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_rcp28_ps (x);
- x = _mm512_mask_rcp28_ps (x, m, x);
- x = _mm512_maskz_rcp28_ps (m, x);
- x = _mm512_rcp28_round_ps (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_rcp28_round_ps (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_rcp28_round_ps (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c
deleted file mode 100644
index 241327143e0..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-2.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-
-void static
-compute_vrcp28ps (float *s, float *r)
-{
- int i;
- for (i = 0; i < 16; i++)
- r[i] = 1.0 / s[i];
-}
-
-void static
-avx512er_test (void)
-{
- union512 src, res1, res2, res3;
- __mmask16 mask = MASK_VALUE;
- float res_ref[16];
- int i;
-
- for (i = 0; i < 16; i++)
- {
- src.a[i] = 179.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_rcp28_ps (src.x);
- res2.x = _mm512_mask_rcp28_ps (res2.x, mask, src.x);
- res3.x = _mm512_maskz_rcp28_ps (mask, src.x);
-
- compute_vrcp28ps (src.a, res_ref);
-
- if (check_rough_union512 (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE ()(res_ref, mask, 16);
- if (check_rough_union512 (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO ()(res_ref, mask, 16);
- if (check_rough_union512 (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c
deleted file mode 100644
index 1e68926a318..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-3.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-
-#define MAX 1000
-#define EPS 0.00001
-
-__attribute__ ((noinline, optimize (0)))
-void static
-compute_rcp_ref (float *a, float *b, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = a[i] / b[i];
-}
-
-__attribute__ ((noinline))
-void static
-compute_rcp_exp (float *a, float *b, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = a[i] / b[i];
-}
-
-void static
-avx512er_test (void)
-{
- float a[MAX];
- float b[MAX];
- float ref[MAX];
- float exp[MAX];
-
- for (int i = 0; i < MAX; i++)
- {
- a[i] = 179.345 - 6.5645 * i;
- b[i] = 8765.987 - 8.6756 * i;
- }
-
- compute_rcp_ref (a, b, ref);
- compute_rcp_exp (a, b, exp);
-
-#pragma GCC novector
- for (int i = 0; i < MAX; i++)
- {
- float rel_err = (ref[i] - exp[i]) / ref[i];
- rel_err = rel_err > 0.0 ? rel_err : -rel_err;
- if (rel_err > EPS)
- abort ();
- }
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c
deleted file mode 100644
index b042849cba4..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ps-4.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-vrcp28ps-3.c"
-
-/* { dg-final { scan-assembler-times "vrcp28ps\[^\n\r\]*zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c
deleted file mode 100644
index f70042580b6..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28sd\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m128d x, y, z;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm_rcp28_sd (x, y);
- x = _mm_rcp28_round_sd (x, y, _MM_FROUND_NO_EXC);
- x = _mm_mask_rcp28_sd (z, m, x, y);
- x = _mm_mask_rcp28_round_sd (z, m, x, y, _MM_FROUND_NO_EXC);
- x = _mm_maskz_rcp28_sd (m, x, y);
- x = _mm_maskz_rcp28_round_sd (m, x, y, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c
deleted file mode 100644
index b434c3c26d9..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28sd-2.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-#define IMM 0x23
-
-void static
-avx512er_test (void)
-{
- union128d src1, src2, res, res1, res2, res3, res4;
- double res_ref[2];
- MASK_TYPE mask = MASK_VALUE;
- int i;
-
- for (i = 0; i < 2; i++)
- {
- src1.a[i] = 179.345 - 6.5645 * i;
- src2.a[i] = 204179.345 + 6.5645 * i;
- res_ref[i] = src1.a[i];
- }
-
- res_ref[0] = 1.0 / src2.a[0];
-
- res.x = _mm_rcp28_round_sd (src1.x, src2.x, _MM_FROUND_NO_EXC);
- res1.x = _mm_mask_rcp28_sd (src1.x, IMM, src1.x, src2.x);
- res2.x = _mm_mask_rcp28_round_sd (src1.x, IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
- res3.x = _mm_maskz_rcp28_sd (IMM, src1.x, src2.x);
- res4.x = _mm_maskz_rcp28_round_sd (IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
-
-
- if (checkVd (res.a, res_ref, 2))
- abort ();
-
- MASK_MERGE (d) (res_ref, mask, 1);
-
- if (checkVd (res1.a, res_ref, 2))
- abort ();
-
- if (checkVd (res2.a, res_ref, 2))
- abort ();
-
- MASK_ZERO (d) (res_ref, mask, 1);
-
- if (checkVd (res3.a, res_ref, 2))
- abort ();
-
- if (checkVd (res4.a, res_ref, 2))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c
deleted file mode 100644
index c819c1abdae..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ss\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m128 x, y, z;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm_rcp28_ss (x, y);
- x = _mm_rcp28_round_ss (x, y, _MM_FROUND_NO_EXC);
- x = _mm_mask_rcp28_ss (z, m, x, y);
- x = _mm_mask_rcp28_round_ss (z, m, x, y, _MM_FROUND_NO_EXC);
- x = _mm_maskz_rcp28_ss (m, x, y);
- x = _mm_maskz_rcp28_round_ss (m, x, y, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c
deleted file mode 100644
index f3b894b2f47..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrcp28ss-2.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-#define IMM 0x23
-
-void static
-avx512er_test (void)
-{
- union128 src1, src2, res, res1, res2, res3, res4;
- float res_ref[4];
- MASK_TYPE mask = MASK_VALUE;
- int i;
-
- for (i = 0; i < 4; i++)
- {
- src1.a[i] = 179.345 - 6.5645 * i;
- src2.a[i] = 179345.006 + 6.5645 * i;
- res_ref[i] = src1.a[i];
- }
-
- res_ref[0] = 1.0 / src2.a[0];
-
- res.x = _mm_rcp28_round_ss (src1.x, src2.x, _MM_FROUND_NO_EXC);
- res1.x = _mm_mask_rcp28_ss (src1.x, IMM, src1.x, src2.x);
- res2.x = _mm_mask_rcp28_round_ss (src1.x, IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
- res3.x = _mm_maskz_rcp28_ss (IMM, src1.x, src2.x);
- res4.x = _mm_maskz_rcp28_round_ss (IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
-
- if (checkVf (res.a, res_ref, 4))
- abort ();
-
- MASK_MERGE () (res_ref, mask, 1);
-
- if (checkVf (res1.a, res_ref, 2))
- abort ();
-
- if (checkVf (res2.a, res_ref, 2))
- abort ();
-
- MASK_ZERO () (res_ref, mask, 1);
-
- if (checkVf (res3.a, res_ref, 2))
- abort ();
-
- if (checkVf (res4.a, res_ref, 2))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c
deleted file mode 100644
index 67822d15296..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28pd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512d x;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_rsqrt28_pd (x);
- x = _mm512_mask_rsqrt28_pd (x, m, x);
- x = _mm512_maskz_rsqrt28_pd (m, x);
- x = _mm512_rsqrt28_round_pd (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_rsqrt28_round_pd (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_rsqrt28_round_pd (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c
deleted file mode 100644
index 3227df84b2e..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28pd-2.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-void static
-compute_vrsqrt28pd (double *s, double *r)
-{
- int i;
- for (i = 0; i < 8; i++)
- r[i] = 1.0 / sqrt (s[i]);
-}
-
-void static
-avx512er_test (void)
-{
- union512d src, res1, res2, res3;
- __mmask8 mask = MASK_VALUE;
- double res_ref[8];
- int i;
-
- for (i = 0; i < 8; i++)
- {
- src.a[i] = 179.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_rsqrt28_pd (src.x);
- res2.x = _mm512_mask_rsqrt28_pd (res2.x, mask, src.x);
- res3.x = _mm512_maskz_rsqrt28_pd (mask, src.x);
-
- compute_vrsqrt28pd (src.a, res_ref);
-
- if (check_rough_union512d (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE (d) (res_ref, mask, 8);
- if (check_rough_union512d (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO (d) (res_ref, mask, 8);
- if (check_rough_union512d (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c
deleted file mode 100644
index 63ff4eab724..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\[^\{\]*(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m512 x;
-volatile __mmask16 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm512_rsqrt28_ps (x);
- x = _mm512_mask_rsqrt28_ps (x, m, x);
- x = _mm512_maskz_rsqrt28_ps (m, x);
- x = _mm512_rsqrt28_round_ps (x, _MM_FROUND_NO_EXC);
- x = _mm512_mask_rsqrt28_round_ps (x, m, x, _MM_FROUND_NO_EXC);
- x = _mm512_maskz_rsqrt28_round_ps (m, x, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c
deleted file mode 100644
index 911683f5e54..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-2.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-void static
-compute_vrsqrt28ps (float *s, float *r)
-{
- int i;
- for (i = 0; i < 16; i++)
- r[i] = 1.0 / sqrt (s[i]);
-}
-
-void static
-avx512er_test (void)
-{
- union512 src, res1, res2, res3;
- __mmask16 mask = MASK_VALUE;
- float res_ref[16];
- int i;
-
- for (i = 0; i < 16; i++)
- {
- src.a[i] = 179.345 - 6.5645 * i;
- res2.a[i] = DEFAULT_VALUE;
- }
-
- res1.x = _mm512_rsqrt28_ps (src.x);
- res2.x = _mm512_mask_rsqrt28_ps (res2.x, mask, src.x);
- res3.x = _mm512_maskz_rsqrt28_ps (mask, src.x);
-
- compute_vrsqrt28ps (src.a, res_ref);
-
- if (check_rough_union512 (res1, res_ref, 0.0001))
- abort ();
-
- MASK_MERGE ()(res_ref, mask, 16);
- if (check_rough_union512 (res2, res_ref, 0.0001))
- abort ();
-
- MASK_ZERO ()(res_ref, mask, 16);
- if (check_rough_union512 (res3, res_ref, 0.0001))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c
deleted file mode 100644
index b922fa285b5..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-3.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include
-#include "avx512er-check.h"
-
-#define MAX 1000
-#define EPS 0.00001
-
-__attribute__ ((noinline, optimize (1, "-fno-fast-math")))
-void static
-compute_rsqrt_ref (float *a, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = 1.0 / sqrtf (a[i]);
-}
-
-__attribute__ ((noinline))
-void static
-compute_rsqrt_exp (float *a, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = 1.0 / sqrtf (a[i]);
-}
-
-void static
-avx512er_test (void)
-{
- float in[MAX];
- float ref[MAX];
- float exp[MAX];
-
- for (int i = 0; i < MAX; i++)
- in[i] = 8765.987 - 8.6756 * i;
-
- compute_rsqrt_ref (in, ref);
- compute_rsqrt_exp (in, exp);
-
-#pragma GCC novector
- for (int i = 0; i < MAX; i++)
- {
- float rel_err = (ref[i] - exp[i]) / ref[i];
- rel_err = rel_err > 0.0 ? rel_err : -rel_err;
- if (rel_err > EPS)
- abort ();
- }
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c
deleted file mode 100644
index 4a793a6b0ae..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-4.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-vrsqrt28ps-3.c"
-
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[^\n\r\]*zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-not "vrcp28ps\[^\n\r\]*zmm\[0-9\]+(?:\n|\[ \\t\]+#)" } } */
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c
deleted file mode 100644
index 3c0066f7ea4..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-5.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include
-#include "avx512er-check.h"
-
-#define MAX 1000
-#define EPS 0.00001
-
-__attribute__ ((noinline, optimize (1, "-fno-fast-math")))
-void static
-compute_sqrt_ref (float *a, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = sqrtf (a[i]);
-}
-
-__attribute__ ((noinline))
-void static
-compute_sqrt_exp (float *a, float *r)
-{
- for (int i = 0; i < MAX; i++)
- r[i] = sqrtf (a[i]);
-}
-
-void static
-avx512er_test (void)
-{
- float in[MAX];
- float ref[MAX];
- float exp[MAX];
-
- for (int i = 0; i < MAX; i++)
- in[i] = 8765.987 - 8.6756 * i;
-
- compute_sqrt_ref (in, ref);
- compute_sqrt_exp (in, exp);
-
-#pragma GCC novector
- for (int i = 0; i < MAX; i++)
- {
- float rel_err = (ref[i] - exp[i]) / ref[i];
- rel_err = rel_err > 0.0 ? rel_err : -rel_err;
- if (rel_err > EPS)
- abort ();
- }
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c
deleted file mode 100644
index f1f013572f7..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ps-6.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-vrsqrt28ps-5.c"
-
-/* { dg-final { scan-assembler-times "vrsqrt28ps\[^\n\r\]*zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrcp28ps\[^\n\r\]*zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c
deleted file mode 100644
index 28f6b193b3b..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\{^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28sd\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m128d x, y, z;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm_rsqrt28_sd (x, y);
- x = _mm_rsqrt28_round_sd (x, y, _MM_FROUND_NO_EXC);
- x = _mm_mask_rsqrt28_sd (z, m, x, y);
- x = _mm_mask_rsqrt28_round_sd (z, m, x, y, _MM_FROUND_NO_EXC);
- x = _mm_maskz_rsqrt28_sd (m, x, y);
- x = _mm_maskz_rsqrt28_round_sd (m, x, y, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c
deleted file mode 100644
index 31910210571..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28sd-2.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-#define IMM 0x23
-
-void static
-avx512er_test (void)
-{
- union128d src1, src2, res, res1, res2, res3, res4;
- double res_ref[2];
- MASK_TYPE mask = MASK_VALUE;
- int i;
-
- for (i = 0; i < 2; i++)
- {
- src1.a[i] = 179.345 - 6.5645 * i;
- src2.a[i] = 45 - 6.5645 * i;
- res_ref[i] = src1.a[i];
- }
-
- res_ref[0] = 1.0 / sqrt (src2.a[0]);
-
- res.x = _mm_rsqrt28_round_sd (src1.x, src2.x, _MM_FROUND_NO_EXC);
- res1.x = _mm_mask_rsqrt28_sd (src1.x, IMM, src1.x, src2.x);
- res2.x = _mm_mask_rsqrt28_round_sd (src1.x, IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
- res3.x = _mm_maskz_rsqrt28_sd (IMM, src1.x, src2.x);
- res4.x = _mm_maskz_rsqrt28_round_sd (IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
-
- if (checkVd (res.a, res_ref, 2))
- abort ();
-
- MASK_MERGE (d) (res_ref, mask, 1);
-
- if (checkVd (res1.a, res_ref, 2))
- abort ();
-
- if (checkVd (res2.a, res_ref, 2))
- abort ();
-
- MASK_ZERO (d) (res_ref, mask, 1);
-
- if (checkVd (res3.a, res_ref, 2))
- abort ();
-
- if (checkVd (res4.a, res_ref, 2))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c
deleted file mode 100644
index 29a9736f89c..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-1.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512er -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\{^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\{\n\]*\{sae\}\[^\n\]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-/* { dg-final { scan-assembler-times "vrsqrt28ss\[ \\t\]+\[^\n\]*\{sae\}\[^\{\n\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
-
-#include
-
-volatile __m128 x, y, z;
-volatile __mmask8 m;
-
-void extern
-avx512er_test (void)
-{
- x = _mm_rsqrt28_ss (x, y);
- x = _mm_rsqrt28_round_ss (x, y, _MM_FROUND_NO_EXC);
- x = _mm_mask_rsqrt28_ss (z, m, x, y);
- x = _mm_mask_rsqrt28_round_ss (z, m, x, y, _MM_FROUND_NO_EXC);
- x = _mm_maskz_rsqrt28_ss (m, x, y);
- x = _mm_maskz_rsqrt28_round_ss (m, x, y, _MM_FROUND_NO_EXC);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c b/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c
deleted file mode 100644
index f9c4488facc..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512er-vrsqrt28ss-2.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* { dg-do run } */
-/* { dg-require-effective-target avx512er } */
-/* { dg-options "-O2 -mavx512er" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "avx512er-check.h"
-#include "avx512f-mask-type.h"
-#include "avx512f-helper.h"
-#include
-
-#define IMM 0x23
-
-void static
-avx512er_test (void)
-{
- union128 src1, src2, res, res1, res2, res3, res4;
- float res_ref[4];
- MASK_TYPE mask = MASK_VALUE;
- int i;
-
- for (i = 0; i < 4; i++)
- {
- src1.a[i] = 179.345 - 6.5645 * i;
- src2.a[i] = 179221345 + 6.5645 * i;
- res_ref[i] = src1.a[i];
- }
-
- res_ref[0] = 1.0 / sqrt (src2.a[0]);
-
- res.x = _mm_rsqrt28_round_ss (src1.x, src2.x, _MM_FROUND_NO_EXC);
- res1.x = _mm_mask_rsqrt28_ss (src1.x, IMM, src1.x, src2.x);
- res2.x = _mm_mask_rsqrt28_round_ss (src1.x, IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
- res3.x = _mm_maskz_rsqrt28_ss (IMM, src1.x, src2.x);
- res4.x = _mm_maskz_rsqrt28_round_ss (IMM, src1.x, src2.x,
- _MM_FROUND_TO_NEAREST_INT
- | _MM_FROUND_NO_EXC);
-
- if (checkVf (res.a, res_ref, 4))
- abort ();
-
- MASK_MERGE () (res_ref, mask, 1);
-
- if (checkVf (res1.a, res_ref, 2))
- abort ();
-
- if (checkVf (res2.a, res_ref, 2))
- abort ();
-
- MASK_ZERO () (res_ref, mask, 1);
-
- if (checkVf (res3.a, res_ref, 2))
- abort ();
-
- if (checkVf (res4.a, res_ref, 2))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c
deleted file mode 100644
index f694f2188dd..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf0dpd\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-void *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_pd (idx, base, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i32gather_pd (idx, m8, base, 8, _MM_HINT_T0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c
deleted file mode 100644
index 9376c1d6f38..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0dps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf0dps\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask16 m16;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_ps (idx, base, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i32gather_ps (idx, m16, base, 8, _MM_HINT_T0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c
deleted file mode 100644
index 13cfac5c7e6..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf0qpd\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64gather_pd (idx, base, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i64gather_pd (idx, m8, base, 8, _MM_HINT_T0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c
deleted file mode 100644
index 79fc548619d..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf0qps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf0qps\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64gather_ps (idx, base, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i64gather_ps (idx, m8, base, 8, _MM_HINT_T0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c
deleted file mode 100644
index 1949fe16f69..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf1dpd\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_pd (idx, base, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i32gather_pd (idx, m8, base, 8, _MM_HINT_T1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c
deleted file mode 100644
index a0fc183c91e..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1dps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf1dps\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask16 m16;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_ps (idx, base, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i32gather_ps (idx, m16, base, 8, _MM_HINT_T1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c
deleted file mode 100644
index e3cedbb881c..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf1qpd\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64gather_pd (idx, base, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i64gather_pd (idx, m8, base, 8, _MM_HINT_T1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c
deleted file mode 100644
index 6ed7297376f..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vgatherpf1qps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vgatherpf1qps\[ \\t\]+\[^\{\n\]*\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64gather_ps (idx, base, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i64gather_ps (idx, m8, base, 8, _MM_HINT_T1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
deleted file mode 100644
index 3fc2c024ef3..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dpd-1.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf0dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-#include
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-void *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32scatter_pd (base, idx, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i32scatter_pd (base, m8, idx, 8, _MM_HINT_ET0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
deleted file mode 100644
index 5689e3a5151..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0dps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf0dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask16 m16;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32scatter_ps (base, idx, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i32scatter_ps (base, m16, idx, 8, _MM_HINT_ET0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
deleted file mode 100644
index cf5596377fe..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf0qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-void *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64scatter_pd (base, idx, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i64scatter_pd (base, m8, idx, 8, _MM_HINT_ET0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
deleted file mode 100644
index eeb65d42f0f..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf0qps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf0qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64scatter_ps (base, idx, 8, _MM_HINT_T0);
- _mm512_mask_prefetch_i64scatter_ps (base, m8, idx, 8, _MM_HINT_ET0);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
deleted file mode 100644
index 39b36d1bbe7..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf1dpd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-void *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32scatter_pd (base, idx, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i32scatter_pd (base, m8, idx, 8, _MM_HINT_ET1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
deleted file mode 100644
index edcde856d8a..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1dps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf1dps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask16 m16;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32scatter_ps (base, idx, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i32scatter_ps (base, m16, idx, 8, _MM_HINT_ET1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
deleted file mode 100644
index c4cdaa8c590..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qpd-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf1qpd\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64scatter_pd (base, idx, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i64scatter_pd (base, m8, idx, 8, _MM_HINT_ET1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c b/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
deleted file mode 100644
index 95ab72eebe2..00000000000
--- a/gcc/testsuite/gcc.target/i386/avx512pf-vscatterpf1qps-1.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512pf -O2" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-times "vscatterpf1qps\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+\[^\n\]*\\)\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 2 } } */
-
-#include
-
-volatile __m512i idx;
-volatile __mmask8 m8;
-int *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i64scatter_ps (base, idx, 8, _MM_HINT_T1);
- _mm512_mask_prefetch_i64scatter_ps (base, m8, idx, 8, _MM_HINT_ET1);
-}
diff --git a/gcc/testsuite/gcc.target/i386/builtin_target.c b/gcc/testsuite/gcc.target/i386/builtin_target.c
index fff643c13b0..45554d8771d 100644
--- a/gcc/testsuite/gcc.target/i386/builtin_target.c
+++ b/gcc/testsuite/gcc.target/i386/builtin_target.c
@@ -89,10 +89,6 @@ quick_check ()
assert (__builtin_cpu_supports ("avx512f") >= 0);
- assert (__builtin_cpu_supports ("avx5124vnniw") >= 0);
-
- assert (__builtin_cpu_supports ("avx5124fmaps") >= 0);
-
assert (__builtin_cpu_supports ("avx512vpopcntdq") >= 0);
assert (__builtin_cpu_supports ("x86-64") >= 0);
diff --git a/gcc/testsuite/gcc.target/i386/pr104448.c b/gcc/testsuite/gcc.target/i386/pr104448.c
deleted file mode 100644
index 3cf913e94ea..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr104448.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/* PR target/104448 */
-/* { dg-do compile { target { *-*-linux* && lp64 } } } */
-/* { dg-options "-mavx5124vnniw -mno-xsave -mabi=ms" } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-int
-main ()
-{
- return 0;
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr82941-2.c b/gcc/testsuite/gcc.target/i386/pr82941-2.c
deleted file mode 100644
index cafa1bf23ca..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82941-2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -march=knl" } */
-/* { dg-warning "'-march=knl' support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "pr82941-1.c"
-
-/* { dg-final { scan-assembler-not "vzeroupper" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr82942-2.c b/gcc/testsuite/gcc.target/i386/pr82942-2.c
deleted file mode 100644
index 55572b03c9b..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82942-2.c
+++ /dev/null
@@ -1,8 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512f -mavx512er -mtune=knl -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "'-mtune=knl' support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "pr82941-1.c"
-
-/* { dg-final { scan-assembler-not "vzeroupper" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr82990-1.c b/gcc/testsuite/gcc.target/i386/pr82990-1.c
deleted file mode 100644
index a87288987c9..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82990-1.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -march=knl -mvzeroupper" } */
-/* { dg-warning "'-march=knl' support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include
-
-extern __m512d y, z;
-
-void
-pr82941 ()
-{
- z = y;
-}
-
-/* { dg-final { scan-assembler-times "vzeroupper" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr82990-3.c b/gcc/testsuite/gcc.target/i386/pr82990-3.c
deleted file mode 100644
index 0c902cdf91b..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82990-3.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mavx512f -mavx512er -mvzeroupper -O2" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "pr82941-1.c"
-
-/* { dg-final { scan-assembler-times "vzeroupper" 1 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr82990-6.c b/gcc/testsuite/gcc.target/i386/pr82990-6.c
deleted file mode 100644
index 41fd1cb17b6..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82990-6.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -march=skylake-avx512 -mtune=knl" } */
-/* { dg-warning "'-mtune=knl' support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#include "pr82941-1.c"
-
-/* { dg-final { scan-assembler-not "vzeroupper" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr82990-7.c b/gcc/testsuite/gcc.target/i386/pr82990-7.c
deleted file mode 100644
index dedde8b854b..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr82990-7.c
+++ /dev/null
@@ -1,6 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -march=skylake-avx512 -mtune=generic -mtune-ctrl=^emit_vzeroupper" } */
-
-#include "pr82941-1.c"
-
-/* { dg-final { scan-assembler-not "vzeroupper" } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr89523-5.c b/gcc/testsuite/gcc.target/i386/pr89523-5.c
deleted file mode 100644
index cdf3190c1b3..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr89523-5.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-require-effective-target maybe_x32 } */
-/* { dg-options "-mx32 -O2 -mavx512pf" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler "\tvgather" } } */
-/* { dg-final { scan-assembler-not "addr32 vgather" } } */
-
-typedef int __v8si __attribute__ ((__vector_size__ (32)));
-typedef long long __m256i __attribute__ ((__vector_size__ (32),
- __may_alias__));
-typedef unsigned char __mmask8;
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32gather_pd (__m256i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32gather_pd (__m256i __index, __mmask8 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd (__mask, (__v8si) __index, __addr, __scale,
- __hint);
-}
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-void *base;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_pd (idx, base, 8, 3);
- _mm512_mask_prefetch_i32gather_pd (idx, m8, base, 8, 3);
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr89523-6.c b/gcc/testsuite/gcc.target/i386/pr89523-6.c
deleted file mode 100644
index d69206d1115..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr89523-6.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-require-effective-target maybe_x32 } */
-/* { dg-options "-mx32 -O2 -mavx512pf" } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler-not "\tvgather" } } */
-/* { dg-final { scan-assembler "addr32 vgather" } } */
-
-typedef int __v8si __attribute__ ((__vector_size__ (32)));
-typedef long long __m256i __attribute__ ((__vector_size__ (32),
- __may_alias__));
-typedef unsigned char __mmask8;
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_prefetch_i32gather_pd (__m256i __index, void const *__addr,
- int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
- __scale, __hint);
-}
-
-extern __inline void
-__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
-_mm512_mask_prefetch_i32gather_pd (__m256i __index, __mmask8 __mask,
- void const *__addr, int __scale, int __hint)
-{
- __builtin_ia32_gatherpfdpd (__mask, (__v8si) __index, __addr, __scale,
- __hint);
-}
-
-volatile __m256i idx;
-volatile __mmask8 m8;
-
-void extern
-avx512pf_test (void)
-{
- _mm512_prefetch_i32gather_pd (idx, (void *) 0, 8, 3);
- _mm512_mask_prefetch_i32gather_pd (idx, m8, (void *) 0, 8, 3);
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr91033.c b/gcc/testsuite/gcc.target/i386/pr91033.c
deleted file mode 100644
index 3b52c66380f..00000000000
--- a/gcc/testsuite/gcc.target/i386/pr91033.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* PR tree-optimization/91033 */
-/* { dg-do compile { target pthread } } */
-/* { dg-options "-march=knl -O2 -fopenmp-simd -ftree-parallelize-loops=2" } */
-/* { dg-warning "'-march=knl' support will be removed in GCC 15" "" { target *-*-* } 0 } */
-
-#define N 1024
-int a[N];
-
-void
-foo (void)
-{
- int i;
- #pragma omp simd simdlen (4)
- for (i = 0; i < N; ++i)
- a[i] = a[i] + 1;
-}
diff --git a/gcc/testsuite/gcc.target/i386/prefetchwt1-1.c b/gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
deleted file mode 100644
index 742a3203069..00000000000
--- a/gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-mprefetchwt1 -O2" } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-final { scan-assembler "\[ \\t\]+prefetchwt1\[ \\t\]+" } } */
-
-#include
-
-void *p;
-
-void extern
-prefetchw__test (void)
-{
- _mm_prefetch (p, _MM_HINT_ET1);
-}
-
diff --git a/gcc/testsuite/gcc.target/i386/sse-12.c b/gcc/testsuite/gcc.target/i386/sse-12.c
index 765fd4de778..a14652bab6a 100644
--- a/gcc/testsuite/gcc.target/i386/sse-12.c
+++ b/gcc/testsuite/gcc.target/i386/sse-12.c
@@ -3,12 +3,7 @@
popcntintrin.h gfniintrin.h and mm_malloc.h are usable
with -O -std=c89 -pedantic-errors. */
/* { dg-do compile } */
-/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512bw -mavx512dq -mavx512vl -mavx512vbmi -mavx512vbmi2 -mavx512ifma -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
+/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512cd -msha -mxsavec -mxsaves -mclflushopt -mavx512bw -mavx512dq -mavx512vl -mavx512vbmi -mavx512vbmi2 -mavx512ifma -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
#include
diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c b/gcc/testsuite/gcc.target/i386/sse-13.c
index 2972b9f2544..567c01d7b50 100644
--- a/gcc/testsuite/gcc.target/i386/sse-13.c
+++ b/gcc/testsuite/gcc.target/i386/sse-13.c
@@ -1,11 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi -mavx512vbmi2 -mavx512ifma -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -mavx512vp2intersect -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
+/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512cd -msha -mxsavec -mxsaves -mclflushopt -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi -mavx512vbmi2 -mavx512ifma -mavx512vpopcntdq -mavx512vp2intersect -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mavx512bitalg -mpconfig -mwbnoinvd -mavx512bf16 -menqcmd -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
/* { dg-add-options bind_pic_locally } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
#include
diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c b/gcc/testsuite/gcc.target/i386/sse-14.c
index 1eb369697a3..880633f2413 100644
--- a/gcc/testsuite/gcc.target/i386/sse-14.c
+++ b/gcc/testsuite/gcc.target/i386/sse-14.c
@@ -1,11 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512er -mavx512cd -mavx512pf -msha -mprefetchwt1 -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx5124fmaps -mavx5124vnniw -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -mavx512vl -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
+/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -mavx512f -mavx512cd -msha -mxsavec -mxsaves -mclflushopt -mavx512dq -mavx512bw -mavx512vl -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512vpopcntdq -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -mavx512vl -mavx512bf16 -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavx512fp16 -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4" } */
/* { dg-add-options bind_pic_locally } */
-/* { dg-warning "AVX512ER support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX512PF support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124FMAPS support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "AVX5124VNNIW support will be removed in GCC 15" "" { target *-*-* } 0 } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
#include
@@ -640,44 +635,6 @@ test_4x (_mm_mask_fixupimm_round_ss, __m128, __m128, __mmask8, __m128, __m128i,
test_4x (_mm_maskz_fixupimm_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128i, 1, 8)
test_4x (_mm_maskz_fixupimm_round_ss, __m128, __mmask8, __m128, __m128, __m128i, 1, 8)
-/* avx512pfintrin.h */
-test_2vx (_mm512_prefetch_i32gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32gather_pd, __m256i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32scatter_pd, void const *, __m256i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64gather_pd, __m512i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64scatter_pd, void const *, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32gather_ps, __m512i, __mmask16, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32scatter_ps, void const *, __mmask16, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64gather_ps, __m512i, __mmask8, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64scatter_ps, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32gather_pd, __m256i, __mmask8, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32scatter_pd, void const *, __mmask8, __m256i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64gather_pd, __m512i, __mmask8, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64scatter_pd, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
-
-/* avx512erintrin.h */
-test_1 (_mm512_exp2a23_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_exp2a23_round_ps, __m512, __m512, 8)
-test_1 (_mm512_rcp28_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_rcp28_round_ps, __m512, __m512, 8)
-test_1 (_mm512_rsqrt28_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_rsqrt28_round_ps, __m512, __m512, 8)
-test_2 (_mm512_maskz_exp2a23_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_exp2a23_round_ps, __m512, __mmask16, __m512, 8)
-test_2 (_mm512_maskz_rcp28_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_rcp28_round_ps, __m512, __mmask16, __m512, 8)
-test_2 (_mm512_maskz_rsqrt28_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_rsqrt28_round_ps, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_exp2a23_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_exp2a23_round_ps, __m512, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_rcp28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_rcp28_round_ps, __m512, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_rsqrt28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_rsqrt28_round_ps, __m512, __m512, __mmask16, __m512, 8)
-
/* avx512fp16intrin.h */
test_1 (_mm512_sqrt_round_ph, __m512h, __m512h, 8)
test_1 (_mm_reduce_ph, __m128h, __m128h, 123)
diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/testsuite/gcc.target/i386/sse-22.c
index e6681f7dd12..bd44e851da0 100644
--- a/gcc/testsuite/gcc.target/i386/sse-22.c
+++ b/gcc/testsuite/gcc.target/i386/sse-22.c
@@ -103,7 +103,7 @@
#ifndef DIFFERENT_PRAGMAS
-#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512cd,avx512pf,sha,prefetchwt1,avx512vl,avx512bw,avx512dq,avx512vbmi,avx512vbmi2,avx512ifma,avx5124fmaps,avx5124vnniw,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
+#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512cd,sha,avx512vl,avx512bw,avx512dq,avx512vbmi,avx512vbmi2,avx512ifma,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
#endif
/* Following intrinsics require immediate arguments. They
@@ -220,7 +220,7 @@ test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1)
/* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F/SHA) */
#ifdef DIFFERENT_PRAGMAS
-#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512er,avx512cd,avx512pf,sha,avx512vl,avx512bw,avx512dq,avx512ifma,avx512vbmi,avx512vbmi2,avx5124fmaps,avx5124vnniw,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
+#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512cd,sha,avx512vl,avx512bw,avx512dq,avx512ifma,avx512vbmi,avx512vbmi2,avx512vpopcntdq,gfni,avx512bitalg,avx512bf16,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
#endif
#include
test_1 (_cvtss_sh, unsigned short, float, 1)
@@ -732,48 +732,6 @@ test_4x (_mm_mask_fixupimm_round_ss, __m128, __m128, __mmask8, __m128, __m128i,
test_4x (_mm_maskz_fixupimm_round_sd, __m128d, __mmask8, __m128d, __m128d, __m128i, 1, 8)
test_4x (_mm_maskz_fixupimm_round_ss, __m128, __mmask8, __m128, __m128, __m128i, 1, 8)
-/* avx512pfintrin.h */
-test_2vx (_mm512_prefetch_i32gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64gather_ps, __m512i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64scatter_ps, void const *, __m512i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32gather_pd, __m256i, void const *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i32scatter_pd, void const *, __m256i, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64gather_pd, __m512i, long long *, 1, _MM_HINT_T0)
-test_2vx (_mm512_prefetch_i64scatter_pd, void const *, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32gather_ps, __m512i, __mmask16, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32scatter_ps, void const *, __mmask16, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64gather_ps, __m512i, __mmask8, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64scatter_ps, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32gather_pd, __m256i, __mmask8, void const *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i32scatter_pd, void const *, __mmask8, __m256i, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64gather_pd, __m512i, __mmask8, long long *, 1, _MM_HINT_T0)
-test_3vx (_mm512_mask_prefetch_i64scatter_pd, void const *, __mmask8, __m512i, 1, _MM_HINT_T0)
-
-/* avx512erintrin.h */
-test_1 (_mm512_exp2a23_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_exp2a23_round_ps, __m512, __m512, 8)
-test_1 (_mm512_rcp28_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_rcp28_round_ps, __m512, __m512, 8)
-test_1 (_mm512_rsqrt28_round_pd, __m512d, __m512d, 8)
-test_1 (_mm512_rsqrt28_round_ps, __m512, __m512, 8)
-test_2 (_mm512_maskz_exp2a23_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_exp2a23_round_ps, __m512, __mmask16, __m512, 8)
-test_2 (_mm512_maskz_rcp28_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_rcp28_round_ps, __m512, __mmask16, __m512, 8)
-test_2 (_mm512_maskz_rsqrt28_round_pd, __m512d, __mmask8, __m512d, 8)
-test_2 (_mm512_maskz_rsqrt28_round_ps, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_exp2a23_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_exp2a23_round_ps, __m512, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_rcp28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_rcp28_round_ps, __m512, __m512, __mmask16, __m512, 8)
-test_3 (_mm512_mask_rsqrt28_round_pd, __m512d, __m512d, __mmask8, __m512d, 8)
-test_3 (_mm512_mask_rsqrt28_round_ps, __m512, __m512, __mmask16, __m512, 8)
-test_2 (_mm_rcp28_round_sd, __m128d, __m128d, __m128d, 8)
-test_2 (_mm_rcp28_round_ss, __m128, __m128, __m128, 8)
-test_2 (_mm_rsqrt28_round_sd, __m128d, __m128d, __m128d, 8)
-test_2 (_mm_rsqrt28_round_ss, __m128, __m128, __m128, 8)
-
/* avx512fp16intrin.h */
test_1 (_mm512_sqrt_round_ph, __m512h, __m512h, 8)
test_1 (_mm_reduce_ph, __m128h, __m128h, 123)
diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/testsuite/gcc.target/i386/sse-23.c
index 92b1c467d95..8ccc194ef27 100644
--- a/gcc/testsuite/gcc.target/i386/sse-23.c
+++ b/gcc/testsuite/gcc.target/i386/sse-23.c
@@ -402,32 +402,6 @@
#define __builtin_ia32_cvtsd2ss_mask_round(A, B, C, D, E) __builtin_ia32_cvtsd2ss_mask_round(A, B, C, D, 8)
#define __builtin_ia32_cvtss2sd_mask_round(A, B, C, D, E) __builtin_ia32_cvtss2sd_mask_round(A, B, C, D, 8)
-/* avx512pfintrin.h */
-#define __builtin_ia32_gatherpfdps(A, B, C, D, E) __builtin_ia32_gatherpfdps(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_gatherpfqps(A, B, C, D, E) __builtin_ia32_gatherpfqps(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_scatterpfdps(A, B, C, D, E) __builtin_ia32_scatterpfdps(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_scatterpfqps(A, B, C, D, E) __builtin_ia32_scatterpfqps(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_gatherpfdpd(A, B, C, D, E) __builtin_ia32_gatherpfdpd(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_gatherpfqpd(A, B, C, D, E) __builtin_ia32_gatherpfqpd(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_scatterpfdpd(A, B, C, D, E) __builtin_ia32_scatterpfdpd(A, B, C, 1, _MM_HINT_T0)
-#define __builtin_ia32_scatterpfqpd(A, B, C, D, E) __builtin_ia32_scatterpfqpd(A, B, C, 1, _MM_HINT_T0)
-
-/* avx512erintrin.h */
-#define __builtin_ia32_exp2pd_mask(A, B, C, D) __builtin_ia32_exp2pd_mask (A, B, C, 8)
-#define __builtin_ia32_exp2ps_mask(A, B, C, D) __builtin_ia32_exp2ps_mask (A, B, C, 8)
-#define __builtin_ia32_rcp28pd_mask(A, B, C, D) __builtin_ia32_rcp28pd_mask (A, B, C, 8)
-#define __builtin_ia32_rcp28ps_mask(A, B, C, D) __builtin_ia32_rcp28ps_mask (A, B, C, 8)
-#define __builtin_ia32_rsqrt28pd_mask(A, B, C, D) __builtin_ia32_rsqrt28pd_mask (A, B, C, 8)
-#define __builtin_ia32_rsqrt28ps_mask(A, B, C, D) __builtin_ia32_rsqrt28ps_mask (A, B, C, 8)
-#define __builtin_ia32_rcp28sd_round(A, B, C) __builtin_ia32_rcp28sd_round(A, B, 8)
-#define __builtin_ia32_rcp28ss_round(A, B, C) __builtin_ia32_rcp28ss_round(A, B, 8)
-#define __builtin_ia32_rsqrt28sd_round(A, B, C) __builtin_ia32_rsqrt28sd_round(A, B, 8)
-#define __builtin_ia32_rsqrt28ss_round(A, B, C) __builtin_ia32_rsqrt28ss_round(A, B, 8)
-#define __builtin_ia32_rcp28sd_mask_round(A, B, C, D, E) __builtin_ia32_rcp28sd_mask_round(A, B, C, D, 8)
-#define __builtin_ia32_rcp28ss_mask_round(A, B, C, D, E) __builtin_ia32_rcp28ss_mask_round(A, B, C, D, 8)
-#define __builtin_ia32_rsqrt28sd_mask_round(A, B, C, D, E) __builtin_ia32_rsqrt28sd_mask_round(A, B, C, D, 8)
-#define __builtin_ia32_rsqrt28ss_mask_round(A, B, C, D, E) __builtin_ia32_rsqrt28ss_mask_round(A, B, C, D, 8)
-
/* shaintrin.h */
#define __builtin_ia32_sha1rnds4(A, B, C) __builtin_ia32_sha1rnds4(A, B, 1)
@@ -850,6 +824,6 @@
/* sm3intrin.h */
#define __builtin_ia32_vsm3rnds2(A, B, C, D) __builtin_ia32_vsm3rnds2 (A, B, C, 1)
-#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512er,avx512cd,avx512pf,sha,prefetchwt1,xsavec,xsaves,clflushopt,avx512bw,avx512dq,avx512vl,avx512vbmi,avx512ifma,avx5124fmaps,avx5124vnniw,avx512vpopcntdq,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,avx512vbmi2,vpclmulqdq,avx512bitalg,pconfig,wbnoinvd,avx512bf16,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-fp16,prefetchi,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
+#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,avx512f,avx512cd,sha,xsavec,xsaves,clflushopt,avx512bw,avx512dq,avx512vl,avx512vbmi,avx512ifma,avx512vpopcntdq,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,avx512vbmi2,vpclmulqdq,avx512bitalg,pconfig,wbnoinvd,avx512bf16,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avx512fp16,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-fp16,prefetchi,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4")
#include
diff --git a/gcc/testsuite/gcc.target/i386/sse-26.c b/gcc/testsuite/gcc.target/i386/sse-26.c
index 5e044b639c4..cc6ec25869f 100644
--- a/gcc/testsuite/gcc.target/i386/sse-26.c
+++ b/gcc/testsuite/gcc.target/i386/sse-26.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse2 -mmmx -mno-sse3 -mno-3dnow -mno-fma -mno-fxsr -mno-xsave -mno-rtm -mno-prfchw -mno-rdseed -mno-adx -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-vaes -mno-vpclmulqdq" } */
+/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse2 -mmmx -mno-sse3 -mno-3dnow -mno-fma -mno-fxsr -mno-xsave -mno-rtm -mno-prfchw -mno-rdseed -mno-adx -mno-clflushopt -mno-xsavec -mno-xsaves -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-vaes -mno-vpclmulqdq" } */
/* { dg-add-options bind_pic_locally } */
-/* { dg-warning "PREFETCHWT1 support will be removed in GCC 15" "" { target *-*-* } 0 } */
#include "sse-13.c"