@@ -54,3 +54,19 @@ LIBATLAS = -L$(ATLASPATH)/32 -lcblas -lf77blas -latlas -lm | |||||
else | else | ||||
LIBATLAS = -L$(ATLASPATH)/32 -lptf77blas -lptatlas -lpthread -lm | LIBATLAS = -L$(ATLASPATH)/32 -lptf77blas -lptatlas -lpthread -lm | ||||
endif | endif | ||||
ifdef HAVE_SSE3 | |||||
ifndef DYNAMIC_ARCH | |||||
CCOMMON_OPT += -msse3 | |||||
FCOMMON_OPT += -msse3 | |||||
ifdef HAVE_SSSE3 | |||||
CCOMMON_OPT += -mssse3 | |||||
FCOMMON_OPT += -mssse3 | |||||
endif | |||||
ifdef HAVE_SSE4_1 | |||||
CCOMMON_OPT += -msse4.1 | |||||
FCOMMON_OPT += -msse4.1 | |||||
endif | |||||
endif | |||||
endif | |||||
@@ -124,10 +124,19 @@ if (NOT DYNAMIC_ARCH) | |||||
if (HAVE_AVX) | if (HAVE_AVX) | ||||
set (CCOMMON_OPT "${CCOMMON_OPT} -mavx") | set (CCOMMON_OPT "${CCOMMON_OPT} -mavx") | ||||
endif () | endif () | ||||
if (HAVE_SSE) | |||||
set (CCOMMON_OPT "${CCOMMON_OPT} -msse") | |||||
endif () | |||||
if (HAVE_SSE2) | |||||
set (CCOMMON_OPT "${CCOMMON_OPT} -msse2") | |||||
endif () | |||||
if (HAVE_SSE3) | if (HAVE_SSE3) | ||||
set (CCOMMON_OPT "${CCOMMON_OPT} -msse3") | set (CCOMMON_OPT "${CCOMMON_OPT} -msse3") | ||||
endif () | endif () | ||||
if (HAVE_SSSE3) | if (HAVE_SSSE3) | ||||
set (CCOMMON_OPT "${CCOMMON_OPT} -mssse3") | set (CCOMMON_OPT "${CCOMMON_OPT} -mssse3") | ||||
endif () | endif () | ||||
if (HAVE_SSE4_1) | |||||
set (CCOMMON_OPT "${CCOMMON_OPT} -msse4.1") | |||||
endif () | |||||
endif() | endif() |
@@ -70,9 +70,21 @@ if (DEFINED TARGET) | |||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") | set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") | ||||
endif() | endif() | ||||
endif() | endif() | ||||
if (DEFINED HAVE_SSE) | |||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse") | |||||
endif() | |||||
if (DEFINED HAVE_SSE2) | |||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse2") | |||||
endif() | |||||
if (DEFINED HAVE_SSE3) | if (DEFINED HAVE_SSE3) | ||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") | set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") | ||||
endif() | endif() | ||||
if (DEFINED HAVE_SSSE3) | |||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mssse3") | |||||
endif() | |||||
if (DEFINED HAVE_SSE4_1) | |||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse4.1") | |||||
endif() | |||||
endif() | endif() | ||||
if (DEFINED TARGET) | if (DEFINED TARGET) | ||||
@@ -45,7 +45,10 @@ endif | |||||
ifdef TARGET_CORE | ifdef TARGET_CORE | ||||
ifeq ($(TARGET_CORE), $(filter $(TARGET_CORE),PRESCOTT CORE2 PENRYN DUNNINGTON ATOM NANO SANDYBRIDGE HASWELL NEHALEM ZEN BARCELONA BOBCAT BULLDOZER PILEDRIVER EXCAVATOR STEAMROLLER OPTERON_SSE3)) | ifeq ($(TARGET_CORE), $(filter $(TARGET_CORE),PRESCOTT CORE2 PENRYN DUNNINGTON ATOM NANO SANDYBRIDGE HASWELL NEHALEM ZEN BARCELONA BOBCAT BULLDOZER PILEDRIVER EXCAVATOR STEAMROLLER OPTERON_SSE3)) | ||||
override CFLAGS += -msse3 -mssse3 -msse4.1 | |||||
override CFLAGS += -msse -msse2 -msse3 -mssse3 -msse4.1 | |||||
endif | |||||
ifeq ($(TARGET_CORE), $(filter $(TARGET_CORE),KATMAI COPPERMINE BANIAS NORTHWOOD ATHLON OPTERON)) | |||||
override CFLAGS += -msse -msse2 | |||||
endif | endif | ||||
ifeq ($(TARGET_CORE), COOPERLAKE) | ifeq ($(TARGET_CORE), COOPERLAKE) | ||||
override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) | override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) | ||||
@@ -1164,7 +1164,7 @@ static void init_parameter(void) { | |||||
TABLE_NAME.xgemm3m_q = QGEMM_DEFAULT_Q; | TABLE_NAME.xgemm3m_q = QGEMM_DEFAULT_Q; | ||||
#endif | #endif | ||||
#if (CORE_KATMAI) || (CORE_COPPERMINE) || (CORE_BANIAS) || (CORE_YONAH) || (CORE_ATHLON) | |||||
#if defined(CORE_KATMAI) || defined(CORE_COPPERMINE) || defined(CORE_BANIAS) || defined(CORE_YONAH) || defined(CORE_ATHLON) | |||||
#ifdef DEBUG | #ifdef DEBUG | ||||
fprintf(stderr, "Katmai, Coppermine, Banias, Athlon\n"); | fprintf(stderr, "Katmai, Coppermine, Banias, Athlon\n"); | ||||
@@ -51,6 +51,8 @@ | |||||
#define MAXPS maxps | #define MAXPS maxps | ||||
#define MAXSS maxss | #define MAXSS maxss | ||||
#ifdef USE_MIN | #ifdef USE_MIN | ||||
#undef MAXPS | |||||
#undef MAXSS | |||||
#define MAXPS minps | #define MAXPS minps | ||||
#define MAXSS minss | #define MAXSS minss | ||||
#endif | #endif | ||||