@@ -30,22 +30,19 @@ enum class MicroArch {
3030 // Refer to the GCC docs for the list of targeted architectures:
3131 // https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
3232 nehalem,
33- x86_64_v2 = nehalem,
3433 westmere,
3534 sandybridge,
3635 ivybridge,
3736 haswell,
38- x86_64_v3 = haswell,
3937 broadwell,
4038 skylake,
39+ x86_64_v4,
4140 skylake_avx512,
42- x86_64_v4 = skylake_avx512,
4341 cascadelake,
4442 cooperlake,
4543 icelake_client,
4644 icelake_server,
4745 sapphirerapids,
48- emeraldrapids = sapphirerapids,
4946 graniterapids,
5047 graniterapids_d,
5148#elif defined(__aarch64__)
@@ -108,6 +105,14 @@ inline const std::unordered_map<MicroArch, MicroArchInfo>& get_microarch_info_ma
108105 {MicroArch::broadwell,
109106 {ISAExt::AES, ISAExt::CLFLUSHOPT, ISAExt::XSAVEC, ISAExt::XSAVES, ISAExt::SGX},
110107 " skylake" }},
108+ {MicroArch::x86_64_v4,
109+ {std::nullopt ,
110+ {ISAExt::AVX512_F,
111+ ISAExt::AVX512_VL,
112+ ISAExt::AVX512_BW,
113+ ISAExt::AVX512_DQ,
114+ ISAExt::AVX512_CD},
115+ " x86_64_v4" }},
111116 {MicroArch::skylake_avx512,
112117 {MicroArch::skylake,
113118 {ISAExt::AVX512_F,
@@ -228,6 +233,7 @@ class MicroArchEnvironment {
228233 SVS_MICROARCH_COMPILED_haswell
229234 SVS_MICROARCH_COMPILED_broadwell
230235 SVS_MICROARCH_COMPILED_skylake
236+ SVS_MICROARCH_COMPILED_x86_64_v4
231237 SVS_MICROARCH_COMPILED_skylake_avx512
232238 SVS_MICROARCH_COMPILED_cascadelake
233239 SVS_MICROARCH_COMPILED_cooperlake
@@ -276,6 +282,7 @@ class MicroArchEnvironment {
276282 SVS_CLASS_METHOD_MICROARCH_CASE_haswell (cls, method, SVS_PACK_ARGS (args)) \
277283 SVS_CLASS_METHOD_MICROARCH_CASE_broadwell (cls, method, SVS_PACK_ARGS (args)) \
278284 SVS_CLASS_METHOD_MICROARCH_CASE_skylake (cls, method, SVS_PACK_ARGS (args)) \
285+ SVS_CLASS_METHOD_MICROARCH_CASE_x86_64_v4 (cls, method, SVS_PACK_ARGS (args)) \
279286 SVS_CLASS_METHOD_MICROARCH_CASE_skylake_avx512 (cls, method, SVS_PACK_ARGS (args)) \
280287 SVS_CLASS_METHOD_MICROARCH_CASE_cascadelake (cls, method, SVS_PACK_ARGS (args)) \
281288 SVS_CLASS_METHOD_MICROARCH_CASE_cooperlake (cls, method, SVS_PACK_ARGS (args)) \
0 commit comments