[Gmp-commit] /var/hg/gmp: Recognise cabylake and goldmont and more versions o...

mercurial at gmplib.org mercurial at gmplib.org
Fri Oct 9 19:05:28 UTC 2015


details:   /var/hg/gmp/rev/7f3713ba5f2c
changeset: 16837:7f3713ba5f2c
user:      Torbjorn Granlund <torbjorng at google.com>
date:      Fri Oct 09 21:05:25 2015 +0200
description:
Recognise cabylake and goldmont and more versions of skylake and silvermont.

diffstat:

 acinclude.m4         |   2 +-
 config.guess         |  10 +++++++++-
 config.sub           |   4 ++--
 configure.ac         |   6 +++---
 mpn/x86_64/fat/fat.c |  16 +++++++++++++++-
 5 files changed, 30 insertions(+), 8 deletions(-)

diffs (129 lines):

diff -r 6fb6c1ed4e94 -r 7f3713ba5f2c acinclude.m4
--- a/acinclude.m4	Tue Sep 29 22:56:46 2015 +0200
+++ b/acinclude.m4	Fri Oct 09 21:05:25 2015 +0200
@@ -63,7 +63,7 @@
 [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]])
 
 define(X86_64_PATTERN,
-[[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar*-*-* | bulldozer*-*-* | piledriver*-*-* | steamroller*-*-* | excavator*-*-* | pentium4-*-* | atom-*-* | silvermont-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-* | nehalem*-*-* | westmere*-*-* | sandybridge*-*-* | ivybridge*-*-* | haswell*-*-* | broadwell*-*-* | skylake*-*-*]])
+[[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar*-*-* | bulldozer*-*-* | piledriver*-*-* | steamroller*-*-* | excavator*-*-* | pentium4-*-* | atom-*-* | silvermont-*-* | goldmont-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-* | nehalem*-*-* | westmere*-*-* | sandybridge*-*-* | ivybridge*-*-* | haswell*-*-* | broadwell*-*-* | skylake*-*-* | cabylake*-*-*]])
 
 dnl  GMP_FAT_SUFFIX(DSTVAR, DIRECTORY)
 dnl  ---------------------------------
diff -r 6fb6c1ed4e94 -r 7f3713ba5f2c config.guess
--- a/config.guess	Tue Sep 29 22:56:46 2015 +0200
+++ b/config.guess	Fri Oct 09 21:05:25 2015 +0200
@@ -818,7 +818,7 @@
           else if (model == 0x2e) cpu_64bit = 1,            modelstr = "nehalem";    /* NHM Beckton */
           else if (model == 0x2f) cpu_64bit = 1,            modelstr = "westmere";   /* WSM Eagleton */
           else if (model == 0x36) cpu_64bit = 1,            modelstr = "atom";       /* Cedarview/Saltwell */
-          else if (model == 0x37) cpu_64bit = 1,            modelstr = "silvermont"; /* Atom Silvermont */
+          else if (model == 0x37) cpu_64bit = 1,            modelstr = "silvermont"; /* Silvermont */
           else if (model == 0x3a) cpu_64bit = 1, cpu_avx=1, modelstr = "ivybridge";  /* IBR */
           else if (model == 0x3c) cpu_64bit = 1, cpu_avx=1, modelstr = "haswell";    /* Haswell client */
           else if (model == 0x3d) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell";  /* Broadwell */
@@ -830,9 +830,17 @@
           else if (model == 0x4a) cpu_64bit = 1,            modelstr = "silvermont"; /* Silvermont */
           else if (model == 0x4c) cpu_64bit = 1,            modelstr = "silvermont"; /* Airmont */
           else if (model == 0x4d) cpu_64bit = 1,            modelstr = "silvermont"; /* Silvermont/Avoton */
+          else if (model == 0x4e) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake";    /* Skylake client */
           else if (model == 0x4f) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell";  /* Broadwell server */
+          else if (model == 0x55) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake";    /* Skylake server */
           else if (model == 0x56) cpu_64bit = 1, cpu_avx=1, modelstr = "broadwell";  /* Broadwell microserver */
+          else if (model == 0x57) cpu_64bit = 1,            modelstr = "knightslanding"; /* aka Xeon Phi */
+          else if (model == 0x5a) cpu_64bit = 1,            modelstr = "silvermont"; /* Silvermont */
+          else if (model == 0x5c) cpu_64bit = 1,            modelstr = "goldmont";   /* Goldmont */
           else if (model == 0x5e) cpu_64bit = 1, cpu_avx=1, modelstr = "skylake";    /* Skylake */
+          else if (model == 0x5f) cpu_64bit = 1,            modelstr = "goldmont";   /* Goldmont */
+          else if (model == 0x8e) cpu_64bit = 1, cpu_avx=1, modelstr = "cabylake";   /* Capylake Y/U */
+          else if (model == 0x9e) cpu_64bit = 1, cpu_avx=1, modelstr = "cabylake";   /* Capylake desktop */
           else                    cpu_64bit = 1,            modelstr = "nehalem";    /* default */
 
 	  if (strcmp (modelstr, "haswell") == 0)
diff -r 6fb6c1ed4e94 -r 7f3713ba5f2c config.sub
--- a/config.sub	Tue Sep 29 22:56:46 2015 +0200
+++ b/config.sub	Fri Oct 09 21:05:25 2015 +0200
@@ -3,7 +3,7 @@
 # GMP config.sub wrapper.
 
 
-# Copyright 2000-2003, 2006, 2009-2014 Free Software Foundation, Inc.
+# Copyright 2000-2003, 2006, 2009-2015 Free Software Foundation, Inc.
 #
 #  This file is part of the GNU MP Library.
 #
@@ -102,7 +102,7 @@
   test_cpu=ia64 ;;
 pentium | pentiummmx | pentiumpro | pentium[234m] | k[567] | k6[23] | geode | athlon | viac3*)
   test_cpu=i386 ;;
-athlon64 | atom | silvermont | core2 | corei* | opteron | k[89] | k10 | bobcat | jaguar* | bulldozer* | piledriver* | steamroller* | excavator* | nano | nehalem* | westmere* | sandybridge* | ivybridge* | haswell* | broadwell* | skylake*)
+athlon64 | atom | silvermont | goldmont | core2 | corei* | opteron | k[89] | k10 | bobcat | jaguar* | bulldozer* | piledriver* | steamroller* | excavator* | nano | nehalem* | westmere* | sandybridge* | ivybridge* | haswell* | broadwell* | skylake* | cabylake* | knightslanding)
   test_cpu=x86_64 ;;
 power[2-9] | power2sc)
   test_cpu=power ;;
diff -r 6fb6c1ed4e94 -r 7f3713ba5f2c configure.ac
--- a/configure.ac	Tue Sep 29 22:56:46 2015 +0200
+++ b/configure.ac	Fri Oct 09 21:05:25 2015 +0200
@@ -1800,20 +1800,20 @@
 	path_64="x86_64/coreibwl x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
 	# extra_functions_64="missing"	 # enable for bmi2/adx simulation
 	;;
-      skylake | skylakenoavx)
+      skylake | skylakenoavx | cabylake | cabylakenoavx)
 	gcc_cflags_cpu="-mtune=skylake -mtune=broadwell -mtune=corei7 -mtune=core2 -mtune=k8"
 	gcc_cflags_arch="-march=skylake -march=broadwell -march=corei7 -march=core2 -march=core2~-mno-sse2 -march=k8 -march=k8~-mno-sse2"
 	path="x86/coreisbr x86/p6/sse2 x86/p6/p3mmx x86/p6/mmx x86/p6 x86/mmx x86"
 	path_64="x86_64/skylake x86_64/coreibwl x86_64/coreihwl x86_64/coreisbr x86_64/coreinhm x86_64/core2 x86_64"
 	# extra_functions_64="missing"	 # enable for bmi2/adx simulation
 	;;
-      atom)
+      atom)			# in-order pipeline atom
 	gcc_cflags_cpu="-mtune=atom -mtune=pentium3"
 	gcc_cflags_arch="-march=atom -march=pentium3"
 	path="x86/atom/sse2 x86/atom/mmx x86/atom x86/mmx x86"
 	path_64="x86_64/atom x86_64"
 	;;
-      silvermont)
+      silvermont | goldmont)	# out-of-order pipeline atom
 	gcc_cflags_cpu="-mtune=slm -mtune=atom -mtune=pentium3"
 	gcc_cflags_arch="-march=slm -march=atom -march=pentium3"
 	path="x86/atom/sse2 x86/atom/mmx x86/atom x86/mmx x86"
diff -r 6fb6c1ed4e94 -r 7f3713ba5f2c mpn/x86_64/fat/fat.c
--- a/mpn/x86_64/fat/fat.c	Tue Sep 29 22:56:46 2015 +0200
+++ b/mpn/x86_64/fat/fat.c	Fri Oct 09 21:05:25 2015 +0200
@@ -286,6 +286,9 @@
 	    case 0x4a:		/* Silvermont */
 	    case 0x4c:		/* Airmont */
 	    case 0x4d:		/* Silvermont/Avoton */
+	    case 0x5a:		/* Silvermont */
+	    case 0x5c:		/* Goldmont */
+	    case 0x5f:		/* Goldmont */
 	      CPUVEC_SETUP_core2;
 	      CPUVEC_SETUP_coreinhm;
 	      break;
@@ -315,13 +318,24 @@
 	    case 0x47:		/* Broadwell */
 	    case 0x4f:		/* Broadwell server */
 	    case 0x56:		/* Broadwell microserver */
-	    case 0x5e:		/* Skylake */
 	      CPUVEC_SETUP_core2;
 	      CPUVEC_SETUP_coreinhm;
 	      CPUVEC_SETUP_coreisbr;
 	      CPUVEC_SETUP_coreihwl;
 	      CPUVEC_SETUP_coreibwl;
 	      break;
+	    case 0x4e:		/* Skylake client */
+	    case 0x55:		/* Skylake server */
+	    case 0x5e:		/* Skylake */
+	    case 0x8e:		/* Cabylake */
+	    case 0x9e:		/* Cabylake */
+	      CPUVEC_SETUP_core2;
+	      CPUVEC_SETUP_coreinhm;
+	      CPUVEC_SETUP_coreisbr;
+	      CPUVEC_SETUP_coreihwl;
+	      CPUVEC_SETUP_coreibwl;
+	      CPUVEC_SETUP_skylake;
+	      break;
 	    }
 	  break;
 


More information about the gmp-commit mailing list