Skip to content

Commit 8fade09

Browse files
committed
Fixed cmake bug on Visual Studio.
1 parent 96f0bbe commit 8fade09

6 files changed

Lines changed: 113 additions & 26 deletions

File tree

common.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,8 +502,7 @@ static void __inline blas_lock(volatile BLASULONG *address){
502502
extension since version 3.0. If neither are available, use a compatible
503503
structure as fallback (see Clause 6.2.5.13 of the C99 standard). */
504504
#if (defined(__STDC_IEC_559_COMPLEX__) || __STDC_VERSION__ >= 199901L || \
505-
(__GNUC__ >= 3 && !defined(__cplusplus)) || \
506-
_MSC_VER >= 1800) // Visual Studio 2013 supports complex
505+
(__GNUC__ >= 3 && !defined(__cplusplus)) )
507506
#define OPENBLAS_COMPLEX_C99
508507
#ifndef __cplusplus
509508
#include <complex.h>

interface/CMakeLists.txt

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ foreach (CBLAS_FLAG ${CBLAS_FLAGS})
6969
set(DISABLE_COMPLEX 0)
7070
set(MANGLE_COMPLEX 3)
7171
if (CBLAS_FLAG EQUAL 1)
72-
set(DISABLE_COMPLEX 1)
73-
set(MANGLE_COMPLEX 1)
72+
# set(DISABLE_COMPLEX 1)
73+
# set(MANGLE_COMPLEX 1)
7474
endif ()
7575
GenerateNamedObjects("${BLAS1_SOURCES}" "" "" ${CBLAS_FLAG} "" "" false ${DISABLE_COMPLEX})
7676
GenerateNamedObjects("${BLAS1_REAL_ONLY_SOURCES}" "" "" ${CBLAS_FLAG} "" "" false 1)
@@ -98,43 +98,54 @@ foreach (CBLAS_FLAG ${CBLAS_FLAGS})
9898
GenerateNamedObjects("imax.c" "USE_ABS;USE_MIN" "i*amin" ${CBLAS_FLAG})
9999
GenerateNamedObjects("imax.c" "USE_MIN" "i*min" ${CBLAS_FLAG})
100100

101-
endforeach ()
102101

103102
# complex-specific sources
104103
foreach (float_type ${FLOAT_TYPES})
105104

106105
if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
107-
GenerateNamedObjects("zger.c" "" "geru" false "" "" false ${float_type})
108-
GenerateNamedObjects("zger.c" "CONJ" "gerc" false "" "" false ${float_type})
109-
GenerateNamedObjects("zdot.c" "CONJ" "dotc" false "" "" false ${float_type})
110-
GenerateNamedObjects("zdot.c" "" "dotu" false "" "" false ${float_type})
106+
GenerateNamedObjects("zger.c" "" "geru" ${CBLAS_FLAG} "" "" false ${float_type})
107+
GenerateNamedObjects("zger.c" "CONJ" "gerc" ${CBLAS_FLAG} "" "" false ${float_type})
108+
GenerateNamedObjects("zdot.c" "CONJ" "dotc" ${CBLAS_FLAG} "" "" false ${float_type})
109+
GenerateNamedObjects("zdot.c" "" "dotu" ${CBLAS_FLAG} "" "" false ${float_type})
111110

112-
GenerateNamedObjects("symm.c" "HEMM" "hemm" false "" "" false ${float_type})
113-
GenerateNamedObjects("syrk.c" "HEMM" "herk" false "" "" false ${float_type})
114-
GenerateNamedObjects("syr2k.c" "HEMM" "her2k" false "" "" false ${float_type})
111+
GenerateNamedObjects("symm.c" "HEMM" "hemm" ${CBLAS_FLAG} "" "" false ${float_type})
112+
GenerateNamedObjects("syrk.c" "HEMM" "herk" ${CBLAS_FLAG} "" "" false ${float_type})
113+
GenerateNamedObjects("syr2k.c" "HEMM" "her2k" ${CBLAS_FLAG} "" "" false ${float_type})
115114

116115
if (USE_GEMM3M)
117116
GenerateNamedObjects("gemm.c" "GEMM3M" "gemm3m" false "" "" false ${float_type})
118117
endif()
119118
endif ()
120119
if (${float_type} STREQUAL "COMPLEX")
121-
GenerateNamedObjects("zscal.c" "SSCAL" "sscal" false "" "" false "COMPLEX")
122-
GenerateNamedObjects("nrm2.c" "" "scnrm2" false "" "" true "COMPLEX")
123-
GenerateNamedObjects("zrot.c" "" "csrot" false "" "" true "COMPLEX")
124-
GenerateNamedObjects("max.c" "USE_ABS;USE_MIN" "scamin" false "" "" true "COMPLEX")
125-
GenerateNamedObjects("max.c" "USE_ABS" "scamax" false "" "" true "COMPLEX")
126-
GenerateNamedObjects("asum.c" "" "scasum" false "" "" true "COMPLEX")
120+
GenerateNamedObjects("zscal.c" "SSCAL" "sscal" ${CBLAS_FLAG} "" "" false "COMPLEX")
121+
GenerateNamedObjects("nrm2.c" "" "scnrm2" ${CBLAS_FLAG} "" "" true "COMPLEX")
122+
GenerateNamedObjects("zrot.c" "" "csrot" ${CBLAS_FLAG} "" "" true "COMPLEX")
123+
GenerateNamedObjects("max.c" "USE_ABS;USE_MIN" "scamin" ${CBLAS_FLAG} "" "" true "COMPLEX")
124+
GenerateNamedObjects("max.c" "USE_ABS" "scamax" ${CBLAS_FLAG} "" "" true "COMPLEX")
125+
GenerateNamedObjects("asum.c" "" "scasum" ${CBLAS_FLAG} "" "" true "COMPLEX")
127126
endif ()
128127
if (${float_type} STREQUAL "ZCOMPLEX")
129-
GenerateNamedObjects("zscal.c" "SSCAL" "dscal" false "" "" false "ZCOMPLEX")
130-
GenerateNamedObjects("nrm2.c" "" "dznrm2" false "" "" true "ZCOMPLEX")
131-
GenerateNamedObjects("zrot.c" "" "zdrot" false "" "" true "ZCOMPLEX")
132-
GenerateNamedObjects("max.c" "USE_ABS;USE_MIN" "dzamin" false "" "" true "ZCOMPLEX")
133-
GenerateNamedObjects("max.c" "USE_ABS" "dzamax" false "" "" true "ZCOMPLEX")
134-
GenerateNamedObjects("asum.c" "" "dzasum" false "" "" true "ZCOMPLEX")
128+
GenerateNamedObjects("zscal.c" "SSCAL" "dscal" ${CBLAS_FLAG} "" "" false "ZCOMPLEX")
129+
GenerateNamedObjects("nrm2.c" "" "dznrm2" ${CBLAS_FLAG} "" "" true "ZCOMPLEX")
130+
GenerateNamedObjects("zrot.c" "" "zdrot" ${CBLAS_FLAG} "" "" true "ZCOMPLEX")
131+
GenerateNamedObjects("max.c" "USE_ABS;USE_MIN" "dzamin" ${CBLAS_FLAG} "" "" true "ZCOMPLEX")
132+
GenerateNamedObjects("max.c" "USE_ABS" "dzamax" ${CBLAS_FLAG} "" "" true "ZCOMPLEX")
133+
GenerateNamedObjects("asum.c" "" "dzasum" ${CBLAS_FLAG} "" "" true "ZCOMPLEX")
135134
endif ()
136135
endforeach ()
137136

137+
endforeach ()
138+
139+
#Special functions for CBLAS
140+
if (NOT DEFINED NO_CBLAS)
141+
foreach (float_type ${FLOAT_TYPES})
142+
if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
143+
#cblas_dotc_sub cblas_dotu_sub
144+
GenerateNamedObjects("zdot.c" "FORCE_USE_STACK" "dotu_sub" 1 "" "" false ${float_type})
145+
GenerateNamedObjects("zdot.c" "FORCE_USE_STACK;CONJ" "dotc_sub" 1 "" "" false ${float_type})
146+
endif()
147+
endforeach ()
148+
endif()
138149

139150
if (NOT DEFINED NO_LAPACK)
140151
set(LAPACK_SOURCES

interface/zdot.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,16 +153,19 @@ void CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy,
153153
OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy){
154154

155155
OPENBLAS_COMPLEX_FLOAT ret;
156+
OPENBLAS_COMPLEX_FLOAT zero=OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0);
156157
#endif
157158

158159
PRINT_DEBUG_CNAME;
159160

160161
if (n <= 0) {
161162
#ifdef FORCE_USE_STACK
162-
*result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0);
163+
//*result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0);
164+
CREAL(*result) = 0.0;
165+
CIMAG(*result) = 0.0;
163166
return;
164167
#else
165-
return OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0);
168+
return zero;
166169
#endif
167170
}
168171

interface/zgemv.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ void CNAME(enum CBLAS_ORDER order,
148148
blasint info, t;
149149
#ifdef SMP
150150
int nthreads;
151+
int nthreads_max;
152+
int nthreads_avail;
153+
double MNK;
151154
#endif
152155

153156
int (*gemv[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG,

interface/zsyr.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, int n, FLOAT alpha, FLO
121121
FLOAT *buffer;
122122
int trans, uplo;
123123
blasint info;
124+
FLOAT * ALPHA = &alpha;
125+
FLOAT alpha_r = ALPHA[0];
126+
FLOAT alpha_i = ALPHA[1];
124127
#ifdef SMP
125128
int nthreads;
126129
#endif

kernel/CMakeLists.txt

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,74 @@ foreach (float_type ${FLOAT_TYPES})
347347
GenerateNamedObjects("${KERNELDIR}/${${float_char}OMATCOPY_RTC}" "CONJ;ROWM" "omatcopy_k_rtc" false "" "" false ${float_type})
348348
endif()
349349

350+
#imatcopy
351+
if (NOT DEFINED ${float_char}IMATCOPY_CN)
352+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
353+
set(${float_char}IMATCOPY_CN ../generic/zimatcopy_cn.c)
354+
else ()
355+
set(${float_char}IMATCOPY_CN ../generic/imatcopy_cn.c)
356+
endif ()
357+
endif ()
358+
359+
if (NOT DEFINED ${float_char}IMATCOPY_RN)
360+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
361+
set(${float_char}IMATCOPY_RN ../generic/zimatcopy_rn.c)
362+
else ()
363+
set(${float_char}IMATCOPY_RN ../generic/imatcopy_rn.c)
364+
endif ()
365+
endif ()
366+
367+
if (NOT DEFINED ${float_char}IMATCOPY_CT)
368+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
369+
set(${float_char}IMATCOPY_CT ../generic/zimatcopy_ct.c)
370+
else ()
371+
set(${float_char}IMATCOPY_CT ../generic/imatcopy_ct.c)
372+
endif ()
373+
endif ()
374+
375+
if (NOT DEFINED ${float_char}IMATCOPY_RT)
376+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
377+
set(${float_char}IMATCOPY_RT ../generic/zimatcopy_rt.c)
378+
else ()
379+
set(${float_char}IMATCOPY_RT ../generic/imatcopy_rt.c)
380+
endif ()
381+
endif ()
382+
383+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_CN}" "" "imatcopy_k_cn" false "" "" false ${float_type})
384+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_RN}" "ROWM" "imatcopy_k_rn" false "" "" false ${float_type})
385+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_CT}" "" "imatcopy_k_ct" false "" "" false ${float_type})
386+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_RT}" "ROWM" "imatcopy_k_rt" false "" "" false ${float_type})
387+
388+
389+
if (NOT DEFINED ${float_char}IMATCOPY_CNC)
390+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
391+
set(${float_char}IMATCOPY_CNC ../generic/zimatcopy_cnc.c)
392+
endif ()
393+
endif ()
394+
if (NOT DEFINED ${float_char}IMATCOPY_RNC)
395+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
396+
set(${float_char}IMATCOPY_RNC ../generic/zimatcopy_rnc.c)
397+
endif ()
398+
endif ()
399+
if (NOT DEFINED ${float_char}IMATCOPY_CTC)
400+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
401+
set(${float_char}IMATCOPY_CTC ../generic/zimatcopy_ctc.c)
402+
endif ()
403+
endif ()
404+
if (NOT DEFINED ${float_char}IMATCOPY_RTC)
405+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
406+
set(${float_char}IMATCOPY_RTC ../generic/zimatcopy_rtc.c)
407+
endif ()
408+
endif ()
409+
410+
if (${float_char} STREQUAL "Z" OR ${float_char} STREQUAL "C")
411+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_CNC}" "CONJ" "imatcopy_k_cnc" false "" "" false ${float_type})
412+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_RNC}" "CONJ;ROWM" "imatcopy_k_rnc" false "" "" false ${float_type})
413+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_CTC}" "CONJ" "imatcopy_k_ctc" false "" "" false ${float_type})
414+
GenerateNamedObjects("${KERNELDIR}/${${float_char}IMATCOPY_RTC}" "CONJ;ROWM" "imatcopy_k_rtc" false "" "" false ${float_type})
415+
endif()
416+
417+
#geadd
350418
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEADD_KERNEL}" "" "geadd_k" false "" "" false ${float_type})
351419
endforeach ()
352420

0 commit comments

Comments
 (0)