summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorFabián Heredia Montiel <fabianhjr@protonmail.com>2020-12-23 18:02:10 -0600
committerFabián Heredia Montiel <fabianhjr@protonmail.com>2020-12-23 18:57:59 -0600
commit2a9ac172c1b979504b165830ef8e374f2efc3051 (patch)
treec31ab82fb3a0e5bc132fbab0eb870607ba0b1977 /lib
parent57a787c9fa91f149c86a1ce83d57e07cfa589e07 (diff)
lib.systems: update processor architecture info
Diffstat (limited to 'lib')
-rw-r--r--lib/systems/architectures.nix44
1 files changed, 37 insertions, 7 deletions
diff --git a/lib/systems/architectures.nix b/lib/systems/architectures.nix
index bfecaec1ae88..8e3a56b0d7c9 100644
--- a/lib/systems/architectures.nix
+++ b/lib/systems/architectures.nix
@@ -12,6 +12,12 @@ rec {
broadwell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
skylake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ cannonlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ icelake-client = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ icelake-server = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ cascadelake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ cooperlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
+ tigerlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
# x86_64 AMD
btver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
btver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
@@ -21,6 +27,7 @@ rec {
bdver4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" "fma4" ];
znver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
znver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
+ znver3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
# other
armv5te = [ ];
armv6 = [ ];
@@ -41,15 +48,38 @@ rec {
broadwell = [ "haswell" ] ++ inferiors.haswell;
skylake = [ "broadwell" ] ++ inferiors.broadwell;
skylake-avx512 = [ "skylake" ] ++ inferiors.skylake;
+
# x86_64 AMD
+ # TODO: fill this (need testing)
btver1 = [ ];
- btver2 = [ ]; # TODO: fill this (need testing)
- bdver1 = [ ]; # TODO: fill this (need testing)
- bdver2 = [ ]; # TODO: fill this (need testing)
- bdver3 = [ ]; # TODO: fill this (need testing)
- bdver4 = [ ]; # TODO: fill this (need testing)
- znver1 = [ ]; # TODO: fill this (need testing)
- znver2 = [ ]; # TODO: fill this (need testing)
+ btver2 = [ ];
+ bdver1 = [ ];
+ bdver2 = [ ];
+ bdver3 = [ ];
+ bdver4 = [ ];
+ # Regarding `skylake` as inferior of `znver1`, there are reports of
+ # successful usage by Gentoo users and Phoronix benchmarking of different
+ # `-march` targets.
+ #
+ # The GCC documentation on extensions used and wikichip documentation
+ # regarding supperted extensions on znver1 and skylake was used to create
+ # this partial order.
+ #
+ # Note:
+ #
+ # - The succesors of `skylake` (`cannonlake`, `icelake`, etc) use `avx512`
+ # which no current AMD Zen michroarch support.
+ # - `znver1` uses `ABM`, `CLZERO`, `CX16`, `MWAITX`, and `SSE4A` which no
+ # current Intel microarch support.
+ #
+ # https://www.phoronix.com/scan.php?page=article&item=amd-znver3-gcc11&num=1
+ # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+ # https://en.wikichip.org/wiki/amd/microarchitectures/zen
+ # https://en.wikichip.org/wiki/intel/microarchitectures/skylake
+ znver1 = [ "skylake" ] ++ inferiors.skylake;
+ znver2 = [ "znver1" ] ++ inferiors.znver1;
+ znver3 = [ "znver2" ] ++ inferiors.znver2;
+
# other
armv5te = [ ];
armv6 = [ ];