Update AMD and generic x86 CPU presets to match LLVM (#5575)
* Add x86 AMD and generic presets * Fix typos * Add zen2 definition
This commit is contained in:
@@ -293,7 +293,7 @@ fn define_settings(shared: &SettingGroup) -> SettingGroup {
|
|||||||
);
|
);
|
||||||
settings.add_preset(
|
settings.add_preset(
|
||||||
"cooperlake",
|
"cooperlake",
|
||||||
"Cooper Lake mircoarchitecture.",
|
"Cooper Lake microarchitecture.",
|
||||||
preset!(cascadelake),
|
preset!(cascadelake),
|
||||||
);
|
);
|
||||||
let cannonlake = settings.add_preset(
|
let cannonlake = settings.add_preset(
|
||||||
@@ -343,10 +343,99 @@ fn define_settings(shared: &SettingGroup) -> SettingGroup {
|
|||||||
preset!(sapphire_rapids),
|
preset!(sapphire_rapids),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// AMD CPUs
|
||||||
|
|
||||||
|
settings.add_preset("opteron", "Opteron microarchitecture.", preset!());
|
||||||
|
settings.add_preset("k8", "K8 Hammer microarchitecture.", preset!());
|
||||||
|
settings.add_preset("athlon64", "Athlon64 microarchitecture.", preset!());
|
||||||
|
settings.add_preset("athlon-fx", "Athlon FX microarchitecture.", preset!());
|
||||||
settings.add_preset(
|
settings.add_preset(
|
||||||
|
"opteron-sse3",
|
||||||
|
"Opteron microarchitecture with support for SSE3 instructions.",
|
||||||
|
preset!(sse3),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"k8-sse3",
|
||||||
|
"K8 Hammer microarchitecture with support for SSE3 instructions.",
|
||||||
|
preset!(sse3),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"athlon64-sse3",
|
||||||
|
"Athlon 64 microarchitecture with support for SSE3 instructions.",
|
||||||
|
preset!(sse3),
|
||||||
|
);
|
||||||
|
let barcelona = settings.add_preset(
|
||||||
|
"barcelona",
|
||||||
|
"Barcelona microarchitecture.",
|
||||||
|
preset!(has_popcnt && has_lzcnt),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"amdfam10",
|
||||||
|
"AMD Family 10h microarchitecture",
|
||||||
|
preset!(barcelona),
|
||||||
|
);
|
||||||
|
|
||||||
|
let btver1 = settings.add_preset(
|
||||||
|
"btver1",
|
||||||
|
"Bobcat microarchitecture.",
|
||||||
|
preset!(ssse3 && has_lzcnt && has_popcnt),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"btver2",
|
||||||
|
"Jaguar microarchitecture.",
|
||||||
|
preset!(btver1 && has_avx && has_bmi1),
|
||||||
|
);
|
||||||
|
|
||||||
|
let bdver1 = settings.add_preset(
|
||||||
|
"bdver1",
|
||||||
|
"Bulldozer microarchitecture",
|
||||||
|
preset!(has_lzcnt && has_popcnt && ssse3),
|
||||||
|
);
|
||||||
|
let bdver2 = settings.add_preset(
|
||||||
|
"bdver2",
|
||||||
|
"Piledriver microarchitecture.",
|
||||||
|
preset!(bdver1 && has_bmi1),
|
||||||
|
);
|
||||||
|
let bdver3 = settings.add_preset("bdver3", "Steamroller microarchitecture.", preset!(bdver2));
|
||||||
|
settings.add_preset(
|
||||||
|
"bdver4",
|
||||||
|
"Excavator microarchitecture.",
|
||||||
|
preset!(bdver3 && has_avx2 && has_bmi2),
|
||||||
|
);
|
||||||
|
|
||||||
|
let znver1 = settings.add_preset(
|
||||||
"znver1",
|
"znver1",
|
||||||
"Zen (first generation) microarchitecture.",
|
"Zen (first generation) microarchitecture.",
|
||||||
preset!(sse42 && has_popcnt && has_bmi1 && has_bmi2 && has_lzcnt),
|
preset!(sse42 && has_popcnt && has_bmi1 && has_bmi2 && has_lzcnt && has_fma),
|
||||||
|
);
|
||||||
|
let znver2 = settings.add_preset(
|
||||||
|
"znver2",
|
||||||
|
"Zen (second generation) microarchitecture.",
|
||||||
|
preset!(znver1),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"znver3",
|
||||||
|
"Zen (third generation) microarchitecture.",
|
||||||
|
preset!(znver2),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Generic
|
||||||
|
|
||||||
|
settings.add_preset("x86-64", "Generic x86-64 microarchitecture.", preset!());
|
||||||
|
let x86_64_v2 = settings.add_preset(
|
||||||
|
"x86-64-v2",
|
||||||
|
"Generic x86-64 (V2) microarchitecture.",
|
||||||
|
preset!(sse42 && has_popcnt),
|
||||||
|
);
|
||||||
|
let x86_64_v3 = settings.add_preset(
|
||||||
|
"x84_64_v3",
|
||||||
|
"Generic x86_64 (V3) microarchitecture.",
|
||||||
|
preset!(x86_64_v2 && has_bmi1 && has_bmi2 && has_fma && has_lzcnt && has_avx2),
|
||||||
|
);
|
||||||
|
settings.add_preset(
|
||||||
|
"x86_64_v4",
|
||||||
|
"Generic x86_64 (V4) microarchitecture.",
|
||||||
|
preset!(x86_64_v3 && has_avx512dq && has_avx512vl),
|
||||||
);
|
);
|
||||||
|
|
||||||
settings.build()
|
settings.build()
|
||||||
|
|||||||
Reference in New Issue
Block a user