From ea26b00c067b5a8beef6f98b18551876e7985a16 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 13 Mar 2017 00:36:01 +0100 Subject: [PATCH 1/5] Fix CREAL,CIMAG macros for PGI --- common.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/common.h b/common.h index b4acada32..c9cc2f0f2 100644 --- a/common.h +++ b/common.h @@ -556,8 +556,13 @@ static void __inline blas_lock(volatile BLASULONG *address){ #endif #if defined(C_PGI) || defined(C_SUN) -#define CREAL(X) (*((FLOAT *)&X + 0)) -#define CIMAG(X) (*((FLOAT *)&X + 1)) + #if defined(__STDC_IEC_559_COMPLEX__) + #define CREAL(X) creal(X) + #define CIMAG(X) cimag(X) + #else + #define CREAL(X) (*((FLOAT *)&X + 0)) + #define CIMAG(X) (*((FLOAT *)&X + 1)) + #endif #else #ifdef OPENBLAS_COMPLEX_STRUCT #define CREAL(Z) ((Z).real) From a6efabf15509c6dbc1b9dcf4ff569d5968523b38 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 13 Mar 2017 00:38:37 +0100 Subject: [PATCH 2/5] Replace gnu _real_ , _imag_ extensions in initializers --- kernel/x86_64/cdot.c | 13 +++++++------ kernel/x86_64/zdot.c | 15 +++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/kernel/x86_64/cdot.c b/kernel/x86_64/cdot.c index 9bba72ba2..4d33b6f5c 100644 --- a/kernel/x86_64/cdot.c +++ b/kernel/x86_64/cdot.c @@ -100,8 +100,7 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in if ( n <= 0 ) { - __real__ result = 0.0 ; - __imag__ result = 0.0 ; + result = OPENBLAS_MAKE_COMPLEX_FLOAT (0.0, 0.0) ; return(result); } @@ -161,11 +160,13 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in } #if !defined(CONJ) - __real__ result = dot[0] - dot[1]; - __imag__ result = dot[4] + dot[5]; + result = OPENBLAS_MAKE_COMPLEX_FLOAT (dot[0]-dot[1], dot[4]+dot[5]) ; +// CREAL(result) = dot[0] - dot[1]; +// CIMAG(result) = dot[4] + dot[5]; #else - __real__ result = dot[0] + dot[1]; - __imag__ result = dot[4] - dot[5]; + result = OPENBLAS_MAKE_COMPLEX_FLOAT (dot[0]+dot[1], dot[4]-dot[5]) ; +// CREAL(result) = dot[0] + dot[1]; +// CIMAG(result) = dot[4] - dot[5]; #endif diff --git a/kernel/x86_64/zdot.c b/kernel/x86_64/zdot.c index ff3a8654d..c1399be37 100644 --- a/kernel/x86_64/zdot.c +++ b/kernel/x86_64/zdot.c @@ -95,8 +95,9 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in if ( n <= 0 ) { - __real__ result = 0.0 ; - __imag__ result = 0.0 ; +// CREAL(result) = 0.0 ; +// CIMAG(result) = 0.0 ; + result=OPENBLAS_MAKE_COMPLEX_FLOAT(0.0,0.0); return(result); } @@ -150,11 +151,13 @@ FLOAT _Complex CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG in } #if !defined(CONJ) - __real__ result = dot[0] - dot[1]; - __imag__ result = dot[2] + dot[3]; + result=OPENBLAS_MAKE_COMPLEX_FLOAT(dot[0]-dot[1],dot[2]+dot[3]); +// CREAL(result) = dot[0] - dot[1]; +// CIMAG(result) = dot[2] + dot[3]; #else - __real__ result = dot[0] + dot[1]; - __imag__ result = dot[2] - dot[3]; + result=OPENBLAS_MAKE_COMPLEX_FLOAT(dot[0]+dot[1],dot[2]-dot[3]); +// CREAL(result) = dot[0] + dot[1]; +// CIMAG(result) = dot[2] - dot[3]; #endif From e44b028fe5c6297cc260145b104b48c2d2febd51 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 13 Mar 2017 00:40:11 +0100 Subject: [PATCH 3/5] Replace gnu _real_, _imag_ extensions in initializers --- interface/zdot.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/zdot.c b/interface/zdot.c index d4d0fab92..4f83187e3 100644 --- a/interface/zdot.c +++ b/interface/zdot.c @@ -160,9 +160,9 @@ OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasin if (n <= 0) { #ifdef FORCE_USE_STACK - //*result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0); - CREAL(*result) = 0.0; - CIMAG(*result) = 0.0; + *result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0); +// CREAL(*result) = 0.0; +// CIMAG(*result) = 0.0; return; #else return zero; From 5813ed095bb9d00fbcecb81e516cf8faf3f2a2a5 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 13 Mar 2017 17:49:07 +0100 Subject: [PATCH 4/5] Update zdot.c --- interface/zdot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/zdot.c b/interface/zdot.c index 4f83187e3..7eb8371de 100644 --- a/interface/zdot.c +++ b/interface/zdot.c @@ -160,7 +160,7 @@ OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasin if (n <= 0) { #ifdef FORCE_USE_STACK - *result = OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0); + *result = zero; // CREAL(*result) = 0.0; // CIMAG(*result) = 0.0; return; From 211d2eceb58227da92b4e1b91e1af4dbca2f7ac0 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 13 Mar 2017 18:08:00 +0100 Subject: [PATCH 5/5] Update zdot.c --- interface/zdot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/zdot.c b/interface/zdot.c index 7eb8371de..cd956b075 100644 --- a/interface/zdot.c +++ b/interface/zdot.c @@ -160,6 +160,7 @@ OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasin if (n <= 0) { #ifdef FORCE_USE_STACK + OPENBLAS_COMPLEX_FLOAT zero=OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0); *result = zero; // CREAL(*result) = 0.0; // CIMAG(*result) = 0.0;