disabled omp simd pragmas, rely on auto-vectorization (sligthly more efficient)
This commit is contained in:
parent
9a5696e500
commit
76bdcde706
|
|
@ -70,7 +70,7 @@ static inline Vec4d vec4_blend(Vec4d fa, Vec4d tr, Vec4m mask)
|
|||
static inline Vec4d vec4_blend(Vec4d fa, Vec4d tr, Vec4m mask)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = (mask[i]==0 ? fa[i] : tr[i]);
|
||||
return r;
|
||||
|
|
@ -80,7 +80,7 @@ static inline Vec4d vec4_blend(Vec4d fa, Vec4d tr, Vec4m mask)
|
|||
static inline Vec4d vec4_exp(Vec4d x)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = exp(x[i]);
|
||||
return r;
|
||||
|
|
@ -89,7 +89,7 @@ static inline Vec4d vec4_exp(Vec4d x)
|
|||
static inline Vec4d vec4_log(Vec4d x)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = log(x[i]);
|
||||
return r;
|
||||
|
|
@ -98,7 +98,7 @@ static inline Vec4d vec4_log(Vec4d x)
|
|||
static inline Vec4d vec4_max(Vec4d x, Vec4d y)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = MAX(x[i],y[i]);
|
||||
return r;
|
||||
|
|
@ -107,7 +107,7 @@ static inline Vec4d vec4_max(Vec4d x, Vec4d y)
|
|||
static inline Vec4d vec4_sqrt(Vec4d x)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = sqrt(x[i]);
|
||||
return r;
|
||||
|
|
@ -116,7 +116,7 @@ static inline Vec4d vec4_sqrt(Vec4d x)
|
|||
static inline Vec4d vec4_fabs(Vec4d x)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = fabs(x[i]);
|
||||
return r;
|
||||
|
|
@ -135,10 +135,27 @@ static inline Vec4d vec4_pow(Vec4d x, double p)
|
|||
/* useful vectorized functions */
|
||||
static inline Vec4d vec4_SIMDTOVECTOR(double val)
|
||||
{
|
||||
return (Vec4d) {val,val,val,val};
|
||||
Vec4d r;
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = val;
|
||||
return r;
|
||||
}
|
||||
|
||||
static inline Vec4m vec4_SIMDTOVECTORMASK(int val)
|
||||
{
|
||||
Vec4m r;
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = val;
|
||||
return r;
|
||||
}
|
||||
static inline Vec4d uuvec4_SIMDTOVECTOR(double val)
|
||||
{
|
||||
return (Vec4d) {val,val,val,val};
|
||||
}
|
||||
|
||||
static inline Vec4m uuvec4_SIMDTOVECTORMASK(int val)
|
||||
{
|
||||
return (Vec4m) {val,val,val,val};
|
||||
}
|
||||
|
|
@ -151,7 +168,7 @@ static inline Vec4d SIMDLOADDATA(int idx, double data[7][4])
|
|||
static inline Vec4d vec4_BSIM3v32_StateAccess(double* cktstate, Vec4m stateindexes)
|
||||
{
|
||||
Vec4d r;
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int i=0;i<4;i++)
|
||||
r[i] = cktstate[stateindexes[i]];
|
||||
return r;
|
||||
|
|
@ -168,7 +185,7 @@ static inline Vec4d vec4_BSIM3v32_StateAccess(double* cktstate, Vec4m stateindex
|
|||
static inline void vec4_BSIM3v32_StateStore(double* cktstate, Vec4m stateindexes, Vec4d values)
|
||||
{
|
||||
/*if(0) vec4_CheckCollisions(stateindexes,"SateStore");*/
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int idx=0;idx<4;idx++)
|
||||
{
|
||||
cktstate[stateindexes[idx]] = values[idx];
|
||||
|
|
@ -178,7 +195,7 @@ static inline void vec4_BSIM3v32_StateStore(double* cktstate, Vec4m stateindexes
|
|||
static inline void vec4_BSIM3v32_StateAdd(double* cktstate, Vec4m stateindexes, Vec4d values)
|
||||
{
|
||||
/*if(0) vec4_CheckCollisions(stateindexes,"StateAdd");*/
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int idx=0;idx<4;idx++)
|
||||
{
|
||||
cktstate[stateindexes[idx]] += values[idx];
|
||||
|
|
@ -188,7 +205,7 @@ static inline void vec4_BSIM3v32_StateAdd(double* cktstate, Vec4m stateindexes,
|
|||
static inline void vec4_BSIM3v32_StateSub(double* cktstate, Vec4m stateindexes, Vec4d values)
|
||||
{
|
||||
/*if(0) vec4_CheckCollisions(stateindexes,"StateSub");*/
|
||||
#pragma omp simd
|
||||
//#pragma omp simd
|
||||
for(int idx=0;idx<4;idx++)
|
||||
{
|
||||
cktstate[stateindexes[idx]] -= values[idx];
|
||||
|
|
|
|||
Loading…
Reference in New Issue