74
stdlib.ispc
74
stdlib.ispc
@@ -421,7 +421,7 @@ static inline void memcpy(void * varying dst, void * varying src,
|
||||
da[programIndex] = dst;
|
||||
sa[programIndex] = src;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
void * uniform d = da[i], * uniform s = sa[i];
|
||||
__memcpy32((int8 * uniform)d, (int8 * uniform)s, extract(count, i));
|
||||
}
|
||||
@@ -435,7 +435,7 @@ static inline void memcpy64(void * varying dst, void * varying src,
|
||||
da[programIndex] = dst;
|
||||
sa[programIndex] = src;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
void * uniform d = da[i], * uniform s = sa[i];
|
||||
__memcpy64((int8 * uniform)d, (int8 * uniform)s, extract(count, i));
|
||||
}
|
||||
@@ -459,7 +459,7 @@ static inline void memmove(void * varying dst, void * varying src,
|
||||
da[programIndex] = dst;
|
||||
sa[programIndex] = src;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
void * uniform d = da[i], * uniform s = sa[i];
|
||||
__memmove32((int8 * uniform)d, (int8 * uniform)s, extract(count, i));
|
||||
}
|
||||
@@ -473,7 +473,7 @@ static inline void memmove64(void * varying dst, void * varying src,
|
||||
da[programIndex] = dst;
|
||||
sa[programIndex] = src;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
void * uniform d = da[i], * uniform s = sa[i];
|
||||
__memmove64((int8 * uniform)d, (int8 * uniform)s, extract(count, i));
|
||||
}
|
||||
@@ -493,7 +493,7 @@ static inline void memset(void * varying ptr, int8 val, int32 count) {
|
||||
void * uniform pa[programCount];
|
||||
pa[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
__memset32((int8 * uniform)pa[i], extract(val, i), extract(count, i));
|
||||
}
|
||||
}
|
||||
@@ -502,7 +502,7 @@ static inline void memset64(void * varying ptr, int8 val, int64 count) {
|
||||
void * uniform pa[programCount];
|
||||
pa[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
__memset64((int8 * uniform)pa[i], extract(val, i), extract(count, i));
|
||||
}
|
||||
}
|
||||
@@ -711,7 +711,7 @@ static inline void prefetch_l1(const void * varying ptr) {
|
||||
const void * uniform ptrArray[programCount];
|
||||
ptrArray[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
const void * uniform p = ptrArray[i];
|
||||
prefetch_l1(p);
|
||||
}
|
||||
@@ -721,7 +721,7 @@ static inline void prefetch_l2(const void * varying ptr) {
|
||||
const void * uniform ptrArray[programCount];
|
||||
ptrArray[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
const void * uniform p = ptrArray[i];
|
||||
prefetch_l2(p);
|
||||
}
|
||||
@@ -731,7 +731,7 @@ static inline void prefetch_l3(const void * varying ptr) {
|
||||
const void * uniform ptrArray[programCount];
|
||||
ptrArray[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
const void * uniform p = ptrArray[i];
|
||||
prefetch_l3(p);
|
||||
}
|
||||
@@ -741,7 +741,7 @@ static inline void prefetch_nt(const void * varying ptr) {
|
||||
const void * uniform ptrArray[programCount];
|
||||
ptrArray[programIndex] = ptr;
|
||||
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
const void * uniform p = ptrArray[i];
|
||||
prefetch_nt(p);
|
||||
}
|
||||
@@ -1621,7 +1621,7 @@ static inline TA atomic_##OPA##_global(uniform TA * varying ptr, TA value) { \
|
||||
uniform TA * uniform ptrArray[programCount]; \
|
||||
ptrArray[programIndex] = ptr; \
|
||||
TA ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TA * uniform p = ptrArray[i]; \
|
||||
uniform TA v = extract(value, i); \
|
||||
uniform TA r = __atomic_##OPB##_uniform_##TB##_global(p, v); \
|
||||
@@ -1672,7 +1672,7 @@ static inline TA atomic_swap_global(uniform TA * varying ptr, TA value) { \
|
||||
uniform TA * uniform ptrArray[programCount]; \
|
||||
ptrArray[programIndex] = ptr; \
|
||||
TA ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TA * uniform p = ptrArray[i]; \
|
||||
uniform TA v = extract(value, i); \
|
||||
uniform TA r = __atomic_swap_uniform_##TB##_global(p, v); \
|
||||
@@ -1699,7 +1699,7 @@ static inline TA atomic_##OPA##_global(uniform TA * varying ptr, \
|
||||
uniform TA * uniform ptrArray[programCount]; \
|
||||
ptrArray[programIndex] = ptr; \
|
||||
TA ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TA * uniform p = ptrArray[i]; \
|
||||
uniform TA v = extract(value, i); \
|
||||
uniform TA r = __atomic_##OPB##_uniform_##TB##_global(p, v); \
|
||||
@@ -1774,7 +1774,7 @@ static inline TA atomic_compare_exchange_global( \
|
||||
uniform TA * uniform ptrArray[programCount]; \
|
||||
ptrArray[programIndex] = ptr; \
|
||||
TA ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TA r = \
|
||||
__atomic_compare_exchange_uniform_##TB##_global(ptrArray[i], \
|
||||
extract(oldval, i), \
|
||||
@@ -1848,7 +1848,7 @@ static inline uniform TYPE atomic_##NAME##_local(uniform TYPE * uniform ptr, \
|
||||
} \
|
||||
static inline TYPE atomic_##NAME##_local(uniform TYPE * uniform ptr, TYPE value) { \
|
||||
TYPE ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
ret = insert(ret, i, *ptr); \
|
||||
*ptr = OPFUNC(*ptr, extract(value, i)); \
|
||||
} \
|
||||
@@ -1858,7 +1858,7 @@ static inline TYPE atomic_##NAME##_local(uniform TYPE * p, TYPE value) { \
|
||||
TYPE ret; \
|
||||
uniform TYPE * uniform ptrs[programCount]; \
|
||||
ptrs[programIndex] = p; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
ret = insert(ret, i, *ptrs[i]); \
|
||||
*ptrs[i] = OPFUNC(*ptrs[i], extract(value, i)); \
|
||||
} \
|
||||
@@ -1975,7 +1975,7 @@ static inline uniform TYPE atomic_compare_exchange_local(uniform TYPE * uniform
|
||||
static inline TYPE atomic_compare_exchange_local(uniform TYPE * uniform ptr, \
|
||||
TYPE cmp, TYPE update) { \
|
||||
TYPE ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TYPE old = *ptr; \
|
||||
if (old == extract(cmp, i)) \
|
||||
*ptr = extract(update, i); \
|
||||
@@ -1988,7 +1988,7 @@ static inline TYPE atomic_compare_exchange_local(uniform TYPE * varying p, \
|
||||
uniform TYPE * uniform ptrs[programCount]; \
|
||||
ptrs[programIndex] = p; \
|
||||
TYPE ret; \
|
||||
__foreach_active (i) { \
|
||||
foreach_active (i) { \
|
||||
uniform TYPE old = *ptrs[i]; \
|
||||
if (old == extract(cmp, i)) \
|
||||
*ptrs[i] = extract(update, i); \
|
||||
@@ -2127,7 +2127,7 @@ static inline float sin(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_sinf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2259,7 +2259,7 @@ static inline float asin(float x) {
|
||||
if (__math_lib == __math_lib_svml ||
|
||||
__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_asinf(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2364,7 +2364,7 @@ static inline float cos(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_cosf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2502,7 +2502,7 @@ static inline void sincos(float x_full, varying float * uniform sin_result,
|
||||
__svml_sincos(x_full, sin_result, cos_result);
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float s, c;
|
||||
__stdlib_sincosf(extract(x_full, i), &s, &c);
|
||||
*sin_result = insert(*sin_result, i, s);
|
||||
@@ -2635,7 +2635,7 @@ static inline float tan(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_tanf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2786,7 +2786,7 @@ static inline float atan(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_atanf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2881,7 +2881,7 @@ static inline float atan2(float y, float x) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_atan2f(extract(y, i), extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -2944,7 +2944,7 @@ static inline float exp(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_expf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3151,7 +3151,7 @@ static inline float log(float x_full) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_logf(extract(x_full, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3326,7 +3326,7 @@ static inline float pow(float a, float b) {
|
||||
}
|
||||
else if (__math_lib == __math_lib_system) {
|
||||
float ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform float r = __stdlib_powf(extract(a, i), extract(b, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3416,7 +3416,7 @@ static inline double sin(double x) {
|
||||
return sin((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_sin(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3438,7 +3438,7 @@ static inline double cos(double x) {
|
||||
return cos((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_cos(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3464,7 +3464,7 @@ static inline void sincos(double x, varying double * uniform sin_result,
|
||||
*cos_result = cr;
|
||||
}
|
||||
else {
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double sr, cr;
|
||||
__stdlib_sincos(extract(x, i), &sr, &cr);
|
||||
*sin_result = insert(*sin_result, i, sr);
|
||||
@@ -3492,7 +3492,7 @@ static inline double tan(double x) {
|
||||
return tan((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_tan(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3514,7 +3514,7 @@ static inline double atan(double x) {
|
||||
return atan((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_atan(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3536,7 +3536,7 @@ static inline double atan2(double y, double x) {
|
||||
return atan2((float)y, (float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_atan2(extract(y, i), extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3558,7 +3558,7 @@ static inline double exp(double x) {
|
||||
return exp((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_exp(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3580,7 +3580,7 @@ static inline double log(double x) {
|
||||
return log((float)x);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_log(extract(x, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
@@ -3602,7 +3602,7 @@ static inline double pow(double a, double b) {
|
||||
return pow((float)a, (float)b);
|
||||
else {
|
||||
double ret;
|
||||
__foreach_active (i) {
|
||||
foreach_active (i) {
|
||||
uniform double r = __stdlib_pow(extract(a, i), extract(b, i));
|
||||
ret = insert(ret, i, r);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user