Skip to content

Commit b3e2ecc

Browse files
committed
Add x86_64_v4 target
1 parent 488ad2b commit b3e2ecc

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

cmake/microarch_targets_x86_64

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
nehalem
22
haswell
3+
x86_64_v4
34
skylake_avx512
45
cascadelake
56
icelake_client

include/svs/lib/arch.h

+11-4
Original file line numberDiff line numberDiff line change
@@ -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)) \

include/svs/lib/arch_defines.h

+9
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@
8787
#define SVS_CLASS_METHOD_MICROARCH_CASE_skylake(cls, method, args)
8888
#endif
8989

90+
#if defined(SVS_MICROARCH_SUPPORT_x86_64_v4)
91+
#define SVS_MICROARCH_COMPILED_x86_64_v4 MicroArch::x86_64_v4,
92+
#define SVS_CLASS_METHOD_MICROARCH_CASE_x86_64_v4(cls, method, args) \
93+
SVS_CLASS_METHOD_MICROARCH_CASE(x86_64_v4, cls, method, SVS_PACK_ARGS(args))
94+
#else
95+
#define SVS_MICROARCH_COMPILED_x86_64_v4
96+
#define SVS_CLASS_METHOD_MICROARCH_CASE_x86_64_v4(cls, method, args)
97+
#endif
98+
9099
#if defined(SVS_MICROARCH_SUPPORT_skylake_avx512)
91100
#define SVS_MICROARCH_COMPILED_skylake_avx512 MicroArch::skylake_avx512,
92101
#define SVS_CLASS_METHOD_MICROARCH_CASE_skylake_avx512(cls, method, args) \

0 commit comments

Comments
 (0)