From 992592ec7a83b1001cf88633fae88d92f8dba79c Mon Sep 17 00:00:00 2001
From: Christian Widmer <shadow@umbrox.de>
Date: Tue, 27 Aug 2013 17:24:37 +0000
Subject: [PATCH] re PR target/57927 (-march=core-avx2  different than
 -march=native on INTEL Haswell (i7-4700K))

	PR target/57927
	* config/i386/driver-i386.c (host_detect_local_cpu): Add detection
	of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
	AVX2 capable processors.

From-SVN: r202026
---
 gcc/ChangeLog                 |  7 +++++++
 gcc/config/i386/driver-i386.c | 28 ++++++++++++++++++----------
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 902293b25f8a..9698dc910184 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2013-08-27  Christian Widmer  <shadow@umbrox.de>
+
+	PR target/57927
+	* config/i386/driver-i386.c (host_detect_local_cpu): Add detection
+	of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
+	AVX2 capable processors.
+
 2013-08-27  Tejas Belagod  <tejas.belagod@arm.com>
 
 	* config/aarch64/arm_neon.h: Replace all inline asm implementations
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c
index ee7ed23c8bb9..001d12fd2410 100644
--- a/gcc/config/i386/driver-i386.c
+++ b/gcc/config/i386/driver-i386.c
@@ -644,13 +644,18 @@ const char *host_detect_local_cpu (int argc, const char **argv)
 	  /* Atom.  */
 	  cpu = "atom";
 	  break;
+	case 0x0f:
+	  /* Merom.  */
+	case 0x17:
+	case 0x1d:
+	  /* Penryn.  */
+	  cpu = "core2";
+	  break;
 	case 0x1a:
 	case 0x1e:
 	case 0x1f:
 	case 0x2e:
 	  /* Nehalem.  */
-	  cpu = "corei7";
-	  break;
 	case 0x25:
 	case 0x2c:
 	case 0x2f:
@@ -662,20 +667,23 @@ const char *host_detect_local_cpu (int argc, const char **argv)
 	  /* Sandy Bridge.  */
 	  cpu = "corei7-avx";
 	  break;
-	case 0x17:
-	case 0x1d:
-	  /* Penryn.  */
-	  cpu = "core2";
+	case 0x3a:
+	case 0x3e:
+	  /* Ivy Bridge.  */
+	  cpu = "core-avx-i";
 	  break;
-	case 0x0f:
-	  /* Merom.  */
-	  cpu = "core2";
+	case 0x3c:
+	  /* Haswell.  */
+	  cpu = "core-avx2";
 	  break;
 	default:
 	  if (arch)
 	    {
 	      /* This is unknown family 0x6 CPU.  */
-	      if (has_avx)
+	      if (has_avx2)
+		/* Assume Haswell.  */
+		cpu = "core-avx2";
+	      else if (has_avx)
 		/* Assume Sandy Bridge.  */
 		cpu = "corei7-avx";
 	      else if (has_sse4_2)
-- 
GitLab