summary refs log tree commit diff
path: root/pkgs/development/libraries/fflas-ffpack
diff options
context:
space:
mode:
authorvolth <volth@volth.com>2020-08-05 02:32:41 +0000
committervolth <volth@volth.com>2020-08-05 11:18:26 +0000
commitcf7b63df5b9efdef4e8e1b3261d7040199f7e671 (patch)
tree74dbf7a1731896d48e90671f2b3dfb4dff91ec40 /pkgs/development/libraries/fflas-ffpack
parent463db72e631e0bd4a835796324eb1981071c6ee4 (diff)
downloadnixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar.gz
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar.bz2
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar.lz
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar.xz
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.tar.zst
nixpkgs-cf7b63df5b9efdef4e8e1b3261d7040199f7e671.zip
gcc.arch: refactor, move tables under lib/
Diffstat (limited to 'pkgs/development/libraries/fflas-ffpack')
-rw-r--r--pkgs/development/libraries/fflas-ffpack/default.nix33
1 files changed, 13 insertions, 20 deletions
diff --git a/pkgs/development/libraries/fflas-ffpack/default.nix b/pkgs/development/libraries/fflas-ffpack/default.nix
index 226d9c5e744..23b31fe439f 100644
--- a/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -31,28 +31,21 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lcblas"
     "--with-lapack-libs=-llapacke"
-  ] ++ stdenv.lib.optionals stdenv.isx86_64 {
+  ] ++ stdenv.lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
-    default        = [ "--disable-sse3" "--disable-ssse3" "--disable-sse41" "--disable-sse42" "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    # Intel
-    westmere       = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    sandybridge    = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    ivybridge      = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    haswell        = [                                                                                                                                                                                       "--disable-fma4" ];
-    broadwell      = [                                                                                                                                                                                       "--disable-fma4" ];
-    skylake        = [                                                                                                                                                                                       "--disable-fma4" ];
-    skylake-avx512 = [                                                                                                                                                                                       "--disable-fma4" ];
-    # AMD
-    btver1         = [                                                                        "--disable-avx" "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl" "--disable-fma" "--disable-fma4" ];
-    btver2         = [                                                                                        "--disable-avx2"                                                               "--disable-fma" "--disable-fma4" ];
-    bdver1         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
-    bdver2         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
-    bdver3         = [                                                                                        "--disable-avx2" "--disable-avx512f" "--disable-avx512dq" "--disable-avx512vl"                                  ];
-    bdver4         = [                                                                                                                                                                                                        ];
-    znver1         = [                                                                                                                                                                                       "--disable-fma4" ];
-  }.${stdenv.hostPlatform.platform.gcc.arch or "default"};
-
+    "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
+    "--${if stdenv.hostPlatform.ssse3Support  then "enable" else "disable"}-ssse3"
+    "--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
+    "--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
+    "--${if stdenv.hostPlatform.avxSupport    then "enable" else "disable"}-avx"
+    "--${if stdenv.hostPlatform.avx2Support   then "enable" else "disable"}-avx2"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512f"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512dq"
+    "--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512vl"
+    "--${if stdenv.hostPlatform.fmaSupport    then "enable" else "disable"}-fma"
+    "--${if stdenv.hostPlatform.fma4Support   then "enable" else "disable"}-fma4"
+  ];
   doCheck = true;
 
   meta = with stdenv.lib; {