From e5c574807a9173faddf04382837a90b3a2b435f9 Mon Sep 17 00:00:00 2001 From: Dan Luu Date: Sat, 29 Jun 2013 17:26:56 -0500 Subject: [PATCH] Attempt to add Haswell support (using sandybridge optimizations) --- cpuid.h | 3 +++ cpuid_x86.c | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/cpuid.h b/cpuid.h index c52d503cc..4c6284690 100644 --- a/cpuid.h +++ b/cpuid.h @@ -196,4 +196,7 @@ typedef struct { #define CPUTYPE_SANDYBRIDGE 44 #define CPUTYPE_BOBCAT 45 #define CPUTYPE_BULLDOZER 46 +// this define is because BLAS doesn't have haswell specific optimizations yet +#define CPUTYPE_HASWELL CPUTYPE_SANDYBRIDGE + #endif diff --git a/cpuid_x86.c b/cpuid_x86.c index d66ec5aa6..7498f72e6 100644 --- a/cpuid_x86.c +++ b/cpuid_x86.c @@ -41,6 +41,7 @@ #include "cpuid.h" #ifdef NO_AVX +#define CPUTYPE_HASWELL CPUTYPE_NEHALEM #define CPUTYPE_SANDYBRIDGE CPUTYPE_NEHALEM #define CORE_SANDYBRIDGE CORE_NEHALEM #define CPUTYPE_BULLDOZER CPUTYPE_BARCELONA @@ -1050,8 +1051,22 @@ int get_cpuname(void){ return CPUTYPE_SANDYBRIDGE; else return CPUTYPE_NEHALEM; + case 12: + if(support_avx()) + return CPUTYPE_HASWELL; + else + return CPUTYPE_NEHALEM; } break; + case 4: + switch (model) { + case 5: + if(support_avx()) + return CPUTYPE_HASWELL; + else + return CPUTYPE_NEHALEM; + } + break; } break; case 0x7: