Skip to content

Commit 3a55dca

Browse files
authored
Make x86_64 zdot compile with PGI and Sun C again
broken by #2222 as CREAL,CIMAG do not expand to a valid lvalue with these compilers
1 parent 300f158 commit 3a55dca

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

kernel/x86_64/zdot.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,10 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
181181
#if defined(SMP)
182182
int nthreads;
183183
FLOAT dummy_alpha;
184+
FLOAT zdotr=0., zdoti=0.;
184185
#endif
185186
OPENBLAS_COMPLEX_FLOAT zdot;
186-
CREAL(zdot) = 0.0;
187-
CIMAG(zdot) = 0.0;
187+
zdot=OPENBLAS_MAKE_COMPLEX_FLOAT(0.0,0.0);
188188

189189
#if defined(SMP)
190190
if (inc_x == 0 || inc_y == 0 || n <= 10000)
@@ -211,15 +211,17 @@ OPENBLAS_COMPLEX_FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLA
211211

212212
ptr = (OPENBLAS_COMPLEX_FLOAT *)result;
213213
for (i = 0; i < nthreads; i++) {
214-
CREAL(zdot) = CREAL(zdot) + CREAL(*ptr);
215-
CIMAG(zdot) = CIMAG(zdot) + CIMAG(*ptr);
214+
zdotr += CREAL(*ptr);
215+
zdoti += CIMAG(*ptr);
216+
// CREAL(zdot) = CREAL(zdot) + CREAL(*ptr);
217+
// CIMAG(zdot) = CIMAG(zdot) + CIMAG(*ptr);
216218
ptr = (void *)(((char *)ptr) + sizeof(double) * 2);
217219
}
220+
zdot = OPENBLAS_MAKE_COMPLEX_FLOAT(zdotr,zdoti);
218221
}
219222
#else
220223
zdot_compute(n, x, inc_x, y, inc_y, &zdot);
221224
#endif
222-
223225
return zdot;
224226
}
225227

0 commit comments

Comments
 (0)