Skip to content

Commit 336e354

Browse files
authored
Merge pull request #105 from xianyi/develop
rebase
2 parents 6208c98 + 2966845 commit 336e354

25 files changed

+74
-50
lines changed

Makefile.system

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -641,18 +641,22 @@ DYNAMIC_CORE += POWER8
641641
ifneq ($(C_COMPILER), GCC)
642642
DYNAMIC_CORE += POWER9
643643
DYNAMIC_CORE += POWER10
644+
CCOMMON_OPT += -DHAVE_P10_SUPPORT
644645
endif
645646
ifeq ($(C_COMPILER), GCC)
646647
ifeq ($(GCCVERSIONGT5), 1)
647648
DYNAMIC_CORE += POWER9
648649
else
649650
$(info, OpenBLAS: Your gcc version is too old to build the POWER9 kernels.)
650651
endif
651-
ifeq ($(GCCVERSIONGTEQ11), 1)
652+
LDVERSIONGTEQ35 := $(shell expr `ld --version | head -1 | cut -f2 -d "." | cut -f1 -d "-"` >= 35)
653+
ifeq ($(GCCVERSIONGTEQ11)$(LDVERSIONGTEQ35), 11)
652654
DYNAMIC_CORE += POWER10
655+
CCOMMON_OPT += -DHAVE_P10_SUPPORT
653656
else ifeq ($(GCCVERSIONGTEQ10), 1)
654-
ifeq ($(GCCMINORVERSIONGTEQ2), 1)
657+
ifeq ($(GCCMINORVERSIONGTEQ2)$(LDVERSIONGTEQ35), 11)
655658
DYNAMIC_CORE += POWER10
659+
CCOMMON_OPT += -DHAVE_P10_SUPPORT
656660
endif
657661
else
658662
$(info, OpenBLAS: Your gcc version is too old to build the POWER10 kernels.)

cmake/arch.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ if (DYNAMIC_ARCH)
4949

5050
if (POWER)
5151
set(DYNAMIC_CORE POWER6 POWER8 POWER9 POWER10)
52+
set(CCOMMON_OPT "${CCOMMON_OPT} -DHAVE_P10_SUPPORT")
5253
endif ()
5354

5455
if (X86)

driver/others/dynamic_power.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ extern gotoblas_t gotoblas_POWER8;
66
#if (!defined __GNUC__) || ( __GNUC__ >= 6)
77
extern gotoblas_t gotoblas_POWER9;
88
#endif
9-
#if (!defined __GNUC__) || ( __GNUC__ >= 11) \
10-
|| (__GNUC__ == 10 && __GNUC_MINOR__ >= 2)
11-
#define HAVE_P10_SUPPORT 1
12-
#endif
9+
//#if (!defined __GNUC__) || ( __GNUC__ >= 11) \
10+
// || (__GNUC__ == 10 && __GNUC_MINOR__ >= 2)
11+
//#define HAVE_P10_SUPPORT 1
12+
//#endif
1313
#ifdef HAVE_P10_SUPPORT
1414
extern gotoblas_t gotoblas_POWER10;
1515
#endif

kernel/x86_64/caxpy_microk_bulldozer-2.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
122122
"r" (alpha), // 4
123123
"r" (mvec) // 5
124124
: "cc",
125-
"%xmm0", "%xmm1",
125+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
126126
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
127127
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
128128
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
@@ -189,9 +189,10 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
189189
"r" (alpha), // 4
190190
"r" (mvec) // 5
191191
: "cc",
192-
"%xmm0", "%xmm1",
192+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
193193
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
194194
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
195+
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
195196
"memory"
196197
);
197198

kernel/x86_64/caxpy_microk_haswell-2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
120120
"r" (alpha), // 4
121121
"r" (mvec) // 5
122122
: "cc",
123-
"%xmm0", "%xmm1",
123+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
124124
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
125125
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
126126
"%xmm12", "%xmm13", "%xmm14", "%xmm15",

kernel/x86_64/caxpy_microk_sandy-2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
104104
"r" (alpha), // 4
105105
"r" (mvec) // 5
106106
: "cc",
107-
"%xmm0", "%xmm1",
107+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
108108
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
109109
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
110110
"%xmm12", "%xmm13", "%xmm14", "%xmm15",

kernel/x86_64/caxpy_microk_steamroller-2.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
122122
"r" (alpha), // 4
123123
"r" (mvec) // 5
124124
: "cc",
125-
"%xmm0", "%xmm1",
125+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
126126
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
127127
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
128128
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
@@ -189,9 +189,10 @@ static void caxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
189189
"r" (alpha), // 4
190190
"r" (mvec) // 5
191191
: "cc",
192-
"%xmm0", "%xmm1",
192+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
193193
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
194194
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
195+
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
195196
"memory"
196197
);
197198

kernel/x86_64/daxpy_microk_haswell-2.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ static void daxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
6767
"r" (y), // 3
6868
"r" (alpha) // 4
6969
: "cc",
70-
"%xmm0",
71-
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
70+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
71+
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
72+
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
7273
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
7374
"memory"
7475
);

kernel/x86_64/ddot_microk_haswell-2.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ static void ddot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
8484
"r" (y), // 3
8585
"r" (dot) // 4
8686
: "cc",
87-
"%xmm4", "%xmm5",
88-
"%xmm6", "%xmm7",
87+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
88+
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
89+
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
8990
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
9091
"memory"
9192
);

kernel/x86_64/ddot_microk_piledriver-2.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ static void ddot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
9191
: "cc",
9292
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
9393
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
94+
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
9495
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
9596
"memory"
9697
);
@@ -155,6 +156,7 @@ static void ddot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
155156
: "cc",
156157
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
157158
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
159+
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
158160
"%xmm12", "%xmm13", "%xmm14", "%xmm15",
159161
"memory"
160162
);

0 commit comments

Comments
 (0)