@@ -1098,6 +1098,16 @@ int get_cpuname(void){ | |||
return CPUTYPE_HASWELL; | |||
#else | |||
return CPUTYPE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CPUTYPE_NEHALEM; | |||
case 13: | |||
//Broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CPUTYPE_HASWELL; | |||
#else | |||
return CPUTYPE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CPUTYPE_NEHALEM; | |||
@@ -1112,11 +1122,36 @@ int get_cpuname(void){ | |||
return CPUTYPE_HASWELL; | |||
#else | |||
return CPUTYPE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CPUTYPE_NEHALEM; | |||
case 7: | |||
case 15: | |||
//Broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CPUTYPE_HASWELL; | |||
#else | |||
return CPUTYPE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CPUTYPE_NEHALEM; | |||
} | |||
break; | |||
case 5: | |||
switch (model) { | |||
case 6: | |||
//Broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CPUTYPE_HASWELL; | |||
#else | |||
return CPUTYPE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CPUTYPE_NEHALEM; | |||
} | |||
break; | |||
} | |||
break; | |||
case 0x7: | |||
@@ -1525,6 +1560,16 @@ int get_coretype(void){ | |||
return CORE_HASWELL; | |||
#else | |||
return CORE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CORE_NEHALEM; | |||
case 13: | |||
//broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CORE_HASWELL; | |||
#else | |||
return CORE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CORE_NEHALEM; | |||
@@ -1539,11 +1584,36 @@ int get_coretype(void){ | |||
return CORE_HASWELL; | |||
#else | |||
return CORE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CORE_NEHALEM; | |||
case 7: | |||
case 15: | |||
//broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CORE_HASWELL; | |||
#else | |||
return CORE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CORE_NEHALEM; | |||
} | |||
break; | |||
case 5: | |||
switch (model) { | |||
case 6: | |||
//broadwell | |||
if(support_avx()) | |||
#ifndef NO_AVX2 | |||
return CORE_HASWELL; | |||
#else | |||
return CORE_SANDYBRIDGE; | |||
#endif | |||
else | |||
return CORE_NEHALEM; | |||
} | |||
break; | |||
} | |||
break; | |||
@@ -221,6 +221,15 @@ static gotoblas_t *get_coretype(void){ | |||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. | |||
} | |||
} | |||
//Intel Broadwell | |||
if (model == 13) { | |||
if(support_avx()) | |||
return &gotoblas_HASWELL; | |||
else{ | |||
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); | |||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. | |||
} | |||
} | |||
return NULL; | |||
case 4: | |||
//Intel Haswell | |||
@@ -232,6 +241,26 @@ static gotoblas_t *get_coretype(void){ | |||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. | |||
} | |||
} | |||
//Intel Broadwell | |||
if (model == 7 || model == 15) { | |||
if(support_avx()) | |||
return &gotoblas_HASWELL; | |||
else{ | |||
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); | |||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. | |||
} | |||
} | |||
return NULL; | |||
case 5: | |||
//Intel Broadwell | |||
if (model == 6) { | |||
if(support_avx()) | |||
return &gotoblas_HASWELL; | |||
else{ | |||
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); | |||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. | |||
} | |||
} | |||
return NULL; | |||
} | |||
case 0xf: | |||