Skip to content

Commit 3843bd1

Browse files
authored
Merge pull request #84 from xianyi/develop
rebase
2 parents 55d4d47 + ddec244 commit 3843bd1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1553
-158
lines changed

Makefile.rule

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,5 +277,10 @@ COMMON_PROF = -pg
277277
# If you want to enable the experimental BFLOAT16 support
278278
# BUILD_HALF = 1
279279
#
280+
# the below is not yet configurable, use cmake if you need to build only select types
281+
BUILD_SINGLE = 1
282+
BUILD_DOUBLE = 1
283+
BUILD_COMPLEX = 1
284+
BUILD_COMPLEX16 = 1
280285
# End of user configuration
281286
#

Makefile.system

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ endif
295295
ifeq ($(C_COMPILER), GCC)
296296
GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
297297
GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
298+
GCCVERSIONEQ5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` = 5)
298299
GCCVERSIONGT5 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 5)
299300
GCCVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 7)
300301
GCCVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
@@ -593,35 +594,33 @@ endif
593594
ifeq ($(ARCH), zarch)
594595
DYNAMIC_CORE = ZARCH_GENERIC
595596

596-
# if the compiler accepts -march=arch11 or -march=z13 and can compile a file
597-
# with z13-specific inline assembly, then we can include support for Z13.
598-
# note: -march=z13 is equivalent to -march=arch11 yet some compiler releases
599-
# only support one or the other.
600-
# note: LLVM version 6.x supported -march=z13 yet could not handle vector
601-
# registers in inline assembly, so the check for supporting the -march flag is
602-
# not enough.
603-
ZARCH_TEST_COMPILE=-c $(TOPDIR)/kernel/zarch/damin_z13.c -I$(TOPDIR) -o /dev/null > /dev/null 2> /dev/null
604-
ZARCH_CC_SUPPORTS_ARCH11=$(shell $(CC) -march=arch11 $(ZARCH_TEST_COMPILE) && echo 1)
605-
ZARCH_CC_SUPPORTS_Z13=$(shell $(CC) -march=z13 $(ZARCH_TEST_COMPILE) && echo 1)
606-
607-
ifeq ($(or $(ZARCH_CC_SUPPORTS_ARCH11), $(ZARCH_CC_SUPPORTS_Z13)), 1)
597+
# Z13 is supported since gcc-5.2, gcc-6, and in RHEL 7.3 and newer
598+
ifeq ($(GCCVERSIONGT5), 1)
599+
ZARCH_SUPPORT_Z13 := 1
600+
else ifeq ($(GCCVERSIONEQ5), 1)
601+
ifeq ($(GCCMINORVERSIONGTEQ2), 1)
602+
ZARCH_SUPPORT_Z13 := 1
603+
endif
604+
endif
605+
606+
ifeq ($(wildcard /etc/redhat-release), /etc/redhat-release)
607+
ifeq ($(shell source /etc/os-release ; expr $$VERSION_ID \>= "7.3"), 1)
608+
ZARCH_SUPPORT_Z13 := 1
609+
endif
610+
endif
611+
612+
ifeq ($(ZARCH_SUPPORT_Z13), 1)
608613
DYNAMIC_CORE += Z13
609-
CCOMMON_OPT += -DDYN_Z13
610614
else
611-
$(info OpenBLAS: Not building Z13 kernels because the compiler $(CC) does not support it)
615+
$(info OpenBLAS: Not building Z13 kernels because gcc is older than 5.2 or 6.x)
612616
endif
613617

614-
# as above for z13, check for -march=arch12 and z14 support in the compiler.
615-
ZARCH_CC_SUPPORTS_ARCH12=$(shell $(CC) -march=arch12 $(ZARCH_TEST_COMPILE) && echo 1)
616-
ZARCH_CC_SUPPORTS_Z14=$(shell $(CC) -march=z14 $(ZARCH_TEST_COMPILE) && echo 1)
617-
ifeq ($(or $(ZARCH_CC_SUPPORTS_ARCH12), $(ZARCH_CC_SUPPORTS_Z14)), 1)
618+
ifeq ($(GCCVERSIONGTEQ7), 1)
618619
DYNAMIC_CORE += Z14
619-
CCOMMON_OPT += -DDYN_Z14
620620
else
621-
$(info OpenBLAS: Not building Z14 kernels because the compiler $(CC) does not support it)
621+
$(info OpenBLAS: Not building Z14 kernels because gcc is older than 7.x)
622+
endif
622623
endif
623-
624-
endif # ARCH zarch
625624

626625
ifeq ($(ARCH), power)
627626
DYNAMIC_CORE = POWER6
@@ -1223,6 +1222,18 @@ endif
12231222
ifeq ($(BUILD_HALF), 1)
12241223
CCOMMON_OPT += -DBUILD_HALF
12251224
endif
1225+
ifeq ($(BUILD_SINGLE), 1)
1226+
CCOMMON_OPT += -DBUILD_SINGLE
1227+
endif
1228+
ifeq ($(BUILD_DOUBLE), 1)
1229+
CCOMMON_OPT += -DBUILD_DOUBLE
1230+
endif
1231+
ifeq ($(BUILD_COMPLEX), 1)
1232+
CCOMMON_OPT += -DBUILD_COMPLEX
1233+
endif
1234+
ifeq ($(BUILD_COMPLEX16), 1)
1235+
CCOMMON_OPT += -DBUILD_COMPLEX16
1236+
endif
12261237

12271238
CCOMMON_OPT += -DVERSION=\"$(VERSION)\"
12281239

Makefile.tail

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ QBLASOBJS_P = $(QBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
55
CBLASOBJS_P = $(CBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
66
ZBLASOBJS_P = $(ZBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
77
XBLASOBJS_P = $(XBLASOBJS:.$(SUFFIX)=.$(PSUFFIX))
8+
SHEXTOBJS_P = $(SHEXTOBJS:.$(SUFFIX)=.$(PSUFFIX))
89

910
COMMONOBJS_P = $(COMMONOBJS:.$(SUFFIX)=.$(PSUFFIX))
1011

1112
HPLOBJS_P = $(HPLOBJS:.$(SUFFIX)=.$(PSUFFIX))
1213

13-
BLASOBJS = $(SHBLASOBJS) $(SBLASOBJS) $(DBLASOBJS) $(CBLASOBJS) $(ZBLASOBJS)
14-
BLASOBJS_P = $(SHBLASOBJS_P) $(SBLASOBJS_P) $(DBLASOBJS_P) $(CBLASOBJS_P) $(ZBLASOBJS_P)
14+
BLASOBJS = $(SHEXTOBJS) $(SHBLASOBJS) $(SBLASOBJS) $(DBLASOBJS) $(CBLASOBJS) $(ZBLASOBJS)
15+
BLASOBJS_P = $(SHEXTOBJS_P) $(SHBLASOBJS_P) $(SBLASOBJS_P) $(DBLASOBJS_P) $(CBLASOBJS_P) $(ZBLASOBJS_P)
1516

1617
ifdef EXPRECISION
1718
BLASOBJS += $(QBLASOBJS) $(XBLASOBJS)
@@ -30,6 +31,7 @@ $(QBLASOBJS) $(QBLASOBJS_P) : override CFLAGS += -DXDOUBLE -UCOMPLEX
3031
$(CBLASOBJS) $(CBLASOBJS_P) : override CFLAGS += -UDOUBLE -DCOMPLEX
3132
$(ZBLASOBJS) $(ZBLASOBJS_P) : override CFLAGS += -DDOUBLE -DCOMPLEX
3233
$(XBLASOBJS) $(XBLASOBJS_P) : override CFLAGS += -DXDOUBLE -DCOMPLEX
34+
$(SHEXTOBJS) $(SHEXTOBJS_P) : override CFLAGS += -DHALF -UDOUBLE -UCOMPLEX
3335

3436
$(SHBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
3537
$(SBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
@@ -38,6 +40,7 @@ $(QBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
3840
$(CBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
3941
$(ZBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
4042
$(XBLASOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
43+
$(SHEXTOBJS_P) : override CFLAGS += -DPROFILE $(COMMON_PROF)
4144

4245
libs :: $(BLASOBJS) $(COMMONOBJS)
4346
$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME) $^

cblas.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,17 @@ void cblas_cgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint
382382
void cblas_zgeadd(OPENBLAS_CONST enum CBLAS_ORDER CORDER,OPENBLAS_CONST blasint crows, OPENBLAS_CONST blasint ccols, OPENBLAS_CONST double *calpha, double *a, OPENBLAS_CONST blasint clda, OPENBLAS_CONST double *cbeta,
383383
double *c, OPENBLAS_CONST blasint cldc);
384384

385+
/*** BFLOAT16 and INT8 extensions ***/
386+
/* convert float array to BFLOAT16 array by rounding */
387+
void cblas_shstobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout);
388+
/* convert double array to BFLOAT16 array by rounding */
389+
void cblas_shdtobf16(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *in, OPENBLAS_CONST blasint incin, bfloat16 *out, OPENBLAS_CONST blasint incout);
390+
/* convert BFLOAT16 array to float array */
391+
void cblas_sbf16tos(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, float *out, OPENBLAS_CONST blasint incout);
392+
/* convert BFLOAT16 array to double array */
393+
void cblas_dbf16tod(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *in, OPENBLAS_CONST blasint incin, double *out, OPENBLAS_CONST blasint incout);
394+
/* dot production of BFLOAT16 input arrays, and output as float */
395+
float cblas_shdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST bfloat16 *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST bfloat16 *y, OPENBLAS_CONST blasint incy);
385396

386397
#ifdef __cplusplus
387398
}

cmake/kernel.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,14 @@ if (BUILD_HALF)
126126
set(SHAXPYKERNEL ../arm/axpy.c)
127127
set(SHAXPBYKERNEL ../arm/axpby.c)
128128
set(SHCOPYKERNEL ../arm/copy.c)
129-
set(SHDOTKERNEL ../arm/dot.c)
129+
set(SHDOTKERNEL ../x86_64/shdot.c)
130130
set(SHROTKERNEL ../arm/rot.c)
131131
set(SHSCALKERNEL ../arm/scal.c)
132132
set(SHNRM2KERNEL ../arm/nrm2.c)
133133
set(SHSUMKERNEL ../arm/sum.c)
134134
set(SHSWAPKERNEL ../arm/swap.c)
135+
set(TOBF16KERNEL ../x86_64/tobf16.c)
136+
set(BF16TOKERNEL ../x86_64/bf16to.c)
135137
endif ()
136138
endmacro ()
137139

cmake/system.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,18 @@ set(REVISION "-r${OpenBLAS_VERSION}")
393393
set(MAJOR_VERSION ${OpenBLAS_MAJOR_VERSION})
394394

395395
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CCOMMON_OPT}")
396+
if (BUILD_SINGLE)
397+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_SINGLE")
398+
endif()
399+
if (BUILD_DOUBLE)
400+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_DOUBLE")
401+
endif()
402+
if (BUILD_COMPLEX)
403+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_COMPLEX")
404+
endif()
405+
if (BUILD_COMPLEX16)
406+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_COMPLEX16")
407+
endif()
396408
if(NOT MSVC)
397409
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CCOMMON_OPT}")
398410
endif()

common.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ typedef unsigned long BLASULONG;
258258
#endif
259259

260260
#ifndef BFLOAT16
261-
typedef unsigned short bfloat16;
261+
#include <stdint.h>
262+
typedef uint16_t bfloat16;
262263
#define HALFCONVERSION 1
263264
#endif
264265

common_interface.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ double BLASFUNC(dsdot) (blasint *, float *, blasint *, float *, blasint *);
5454
double BLASFUNC(ddot) (blasint *, double *, blasint *, double *, blasint *);
5555
xdouble BLASFUNC(qdot) (blasint *, xdouble *, blasint *, xdouble *, blasint *);
5656

57+
float BLASFUNC(shdot) (blasint *, bfloat16 *, blasint *, bfloat16 *, blasint *);
58+
void BLASFUNC(shstobf16) (blasint *, float *, blasint *, bfloat16 *, blasint *);
59+
void BLASFUNC(shdtobf16) (blasint *, double *, blasint *, bfloat16 *, blasint *);
60+
void BLASFUNC(sbf16tos) (blasint *, bfloat16 *, blasint *, float *, blasint *);
61+
void BLASFUNC(dbf16tod) (blasint *, bfloat16 *, blasint *, double *, blasint *);
5762

5863
#ifdef RETURN_BY_STRUCT
5964
typedef struct {

common_level1.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ float sdot_k(BLASLONG, float *, BLASLONG, float *, BLASLONG);
4646
double dsdot_k(BLASLONG, float *, BLASLONG, float *, BLASLONG);
4747
double ddot_k(BLASLONG, double *, BLASLONG, double *, BLASLONG);
4848
xdouble qdot_k(BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
49+
float shdot_k(BLASLONG, bfloat16 *, BLASLONG, bfloat16 *, BLASLONG);
50+
51+
void shstobf16_k(BLASLONG, float *, BLASLONG, bfloat16 *, BLASLONG);
52+
void shdtobf16_k(BLASLONG, double *, BLASLONG, bfloat16 *, BLASLONG);
53+
void sbf16tos_k (BLASLONG, bfloat16 *, BLASLONG, float *, BLASLONG);
54+
void dbf16tod_k (BLASLONG, bfloat16 *, BLASLONG, double *, BLASLONG);
4955

5056
openblas_complex_float cdotc_k (BLASLONG, float *, BLASLONG, float *, BLASLONG);
5157
openblas_complex_float cdotu_k (BLASLONG, float *, BLASLONG, float *, BLASLONG);

common_macro.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,11 @@
646646

647647
#elif defined(HALF)
648648

649+
#define D_TO_BF16_K SHDTOBF16_K
650+
#define D_BF16_TO_K DBF16TOD_K
651+
#define S_TO_BF16_K SHSTOBF16_K
652+
#define S_BF16_TO_K SBF16TOS_K
653+
649654
#define AMAX_K SAMAX_K
650655
#define AMIN_K SAMIN_K
651656
#define MAX_K SMAX_K
@@ -657,6 +662,7 @@
657662
#define ASUM_K SASUM_K
658663
#define DOTU_K SDOTU_K
659664
#define DOTC_K SDOTC_K
665+
#define BF16_DOT_K SHDOT_K
660666
#define AXPYU_K SAXPYU_K
661667
#define AXPYC_K SAXPYC_K
662668
#define AXPBY_K SAXPBY_K

common_param.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ typedef struct {
5151
int shgemm_p, shgemm_q, shgemm_r;
5252
int shgemm_unroll_m, shgemm_unroll_n, shgemm_unroll_mn;
5353

54+
void (*shstobf16_k) (BLASLONG, float *, BLASLONG, bfloat16 *, BLASLONG);
55+
void (*shdtobf16_k) (BLASLONG, double *, BLASLONG, bfloat16 *, BLASLONG);
56+
void (*sbf16tos_k) (BLASLONG, bfloat16 *, BLASLONG, float *, BLASLONG);
57+
void (*dbf16tod_k) (BLASLONG, bfloat16 *, BLASLONG, double *, BLASLONG);
58+
5459
float (*shamax_k) (BLASLONG, float *, BLASLONG);
5560
float (*shamin_k) (BLASLONG, float *, BLASLONG);
5661
float (*shmax_k) (BLASLONG, float *, BLASLONG);
@@ -64,7 +69,7 @@ BLASLONG (*ishmin_k) (BLASLONG, float *, BLASLONG);
6469
float (*shasum_k) (BLASLONG, float *, BLASLONG);
6570
float (*shsum_k) (BLASLONG, float *, BLASLONG);
6671
int (*shcopy_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
67-
float (*shdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
72+
float (*shdot_k) (BLASLONG, bfloat16 *, BLASLONG, bfloat16 *, BLASLONG);
6873
double (*dshdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
6974

7075
int (*shrot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG, float, float);

common_sh.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33

44
#ifndef DYNAMIC_ARCH
55

6+
#define SHDOT_K shdot_k
7+
#define SHSTOBF16_K shstobf16_k
8+
#define SHDTOBF16_K shdtobf16_k
9+
#define SBF16TOS_K sbf16tos_k
10+
#define DBF16TOD_K dbf16tod_k
11+
612
#define SHGEMM_ONCOPY shgemm_oncopy
713
#define SHGEMM_OTCOPY shgemm_otcopy
814

@@ -18,6 +24,12 @@
1824

1925
#else
2026

27+
#define SHDOT_K gotoblas -> shdot_k
28+
#define SHSTOBF16_K gotoblas -> shstobf16_k
29+
#define SHDTOBF16_K gotoblas -> shdtobf16_k
30+
#define SBF16TOS_K gotoblas -> sbf16tos_k
31+
#define DBF16TOD_K gotoblas -> dbf16tod_k
32+
2133
#define SHGEMM_ONCOPY gotoblas -> shgemm_oncopy
2234
#define SHGEMM_OTCOPY gotoblas -> shgemm_otcopy
2335
#define SHGEMM_INCOPY gotoblas -> shgemm_incopy

common_thread.h

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,19 @@ extern int blas_omp_linked;
5959
#define BLAS_PTHREAD 0x4000U
6060
#define BLAS_NODE 0x2000U
6161

62-
#define BLAS_PREC 0x0003U
63-
#define BLAS_SINGLE 0x0000U
64-
#define BLAS_DOUBLE 0x0001U
65-
#define BLAS_XDOUBLE 0x0002U
66-
#define BLAS_REAL 0x0000U
67-
#define BLAS_COMPLEX 0x0004U
62+
#define BLAS_PREC 0x000FU
63+
#define BLAS_INT8 0x0000U
64+
#define BLAS_BFLOAT16 0x0001U
65+
#define BLAS_SINGLE 0x0002U
66+
#define BLAS_DOUBLE 0x0003U
67+
#define BLAS_XDOUBLE 0x0004U
68+
#define BLAS_STOBF16 0x0008U
69+
#define BLAS_DTOBF16 0x0009U
70+
#define BLAS_BF16TOS 0x000AU
71+
#define BLAS_BF16TOD 0x000BU
72+
73+
#define BLAS_REAL 0x0000U
74+
#define BLAS_COMPLEX 0x1000U
6875

6976
#define BLAS_TRANSA 0x0030U /* 2bit */
7077
#define BLAS_TRANSA_N 0x0000U

common_x86_64.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,29 @@ static __inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx){
142142
#endif
143143
}
144144

145+
static __inline void cpuid_count(int op, int count, int *eax, int *ebx, int *ecx, int *edx)
146+
{
147+
#ifdef C_MSVC
148+
int cpuInfo[4] = {-1};
149+
__cpuidex(cpuInfo, op, count);
150+
*eax = cpuInfo[0];
151+
*ebx = cpuInfo[1];
152+
*ecx = cpuInfo[2];
153+
*edx = cpuInfo[3];
154+
#else
155+
#if defined(__i386__) && defined(__PIC__)
156+
__asm__ __volatile__
157+
("mov %%ebx, %%edi;"
158+
"cpuid;"
159+
"xchgl %%ebx, %%edi;"
160+
: "=a" (*eax), "=D" (*ebx), "=c" (*ecx), "=d" (*edx) : "0" (op), "2" (count) : "cc");
161+
#else
162+
__asm__ __volatile__
163+
("cpuid": "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx) : "0" (op), "2" (count) : "cc");
164+
#endif
165+
#endif
166+
}
167+
145168
/*
146169
#define WHEREAMI
147170
*/

ctest/c_dblas1.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,6 @@ void F77_dswap( const int *N, double *X, const int *incX,
7474
return;
7575
}
7676

77-
double F77_dzasum(const int *N, void *X, const int *incX)
78-
{
79-
return cblas_dzasum(*N, X, *incX);
80-
}
81-
82-
double F77_dznrm2(const int *N, OPENBLAS_CONST void *X, const int *incX)
83-
{
84-
return cblas_dznrm2(*N, X, *incX);
85-
}
86-
8777
int F77_idamax(const int *N, OPENBLAS_CONST double *X, const int *incX)
8878
{
8979
if (*N < 1 || *incX < 1) return(0);

ctest/c_sblas1.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,6 @@ void F77_saxpy(blasint *N, const float *alpha, OPENBLAS_CONST float *X,
2121
return;
2222
}
2323

24-
float F77_scasum(blasint *N, float *X, blasint *incX)
25-
{
26-
return cblas_scasum(*N, X, *incX);
27-
}
28-
29-
float F77_scnrm2(blasint *N, OPENBLAS_CONST float *X, blasint *incX)
30-
{
31-
return cblas_scnrm2(*N, X, *incX);
32-
}
33-
3424
void F77_scopy(blasint *N, OPENBLAS_CONST float *X, blasint *incX,
3525
float *Y, blasint *incY)
3626
{

0 commit comments

Comments
 (0)