diff options
Diffstat (limited to 'src/vectors.h')
-rw-r--r-- | src/vectors.h | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/src/vectors.h b/src/vectors.h index 2761202..6cb1238 100644 --- a/src/vectors.h +++ b/src/vectors.h @@ -61,6 +61,8 @@ # define vec_loadu_maybe3 vec4_loadu_maybe3 # define vec_store vec4_store # define vec_store_nta vec4_store_nta +# define vec_store_partial_prepare vec4_store_partial_prepare +# define vec_store_nta_partial vec4_store_nta_partial # define vec_store_nta_partial_lo vec4_store_nta_partial_lo # define vec_store_nta_partial_hi vec4_store_nta_partial_hi # define vec_store_nta_partial_mid vec4_store_nta_partial_mid @@ -90,8 +92,7 @@ # define ksqrt k4sqrt # define ktan k4tan -# define kifpos k4ifpos -# define kifneg k4ifneg +# define kifmsb k4ifmsb #elif defined(CCTK_REAL_PRECISION_8) @@ -111,7 +112,9 @@ # define vec_loadu_maybe vec8_loadu_maybe # define vec_loadu_maybe3 vec8_loadu_maybe3 # define vec_store vec8_store +# define vec_store_partial_prepare vec8_store_partial_prepare # define vec_store_nta vec8_store_nta +# define vec_store_nta_partial vec8_store_nta_partial # define vec_store_nta_partial_lo vec8_store_nta_partial_lo # define vec_store_nta_partial_hi vec8_store_nta_partial_hi # define vec_store_nta_partial_mid vec8_store_nta_partial_mid @@ -140,7 +143,7 @@ # define ksqrt k8sqrt # define ktan k8tan -# define kifpos k8ifpos +# define kifmsb k8ifmsb #else @@ -150,6 +153,11 @@ +#define kifneg(a,b,c) kifmsb(a,b,c) +#define kifpos(a,b,c) kifmsb(a,c,b) + + + #if CCTK_REAL_VEC_SIZE == 1 # define vec_index vec_set(0) #elif CCTK_REAL_VEC_SIZE == 2 @@ -310,20 +318,31 @@ struct vecprops<CCTK_REAL8> { // For Kranc -#undef KRANC_DIFF_FUNCTIONS -#if ! VECTORISE_INLINE -# define KRANC_DIFF_FUNCTIONS -#endif +#ifdef KRANC_C + +# undef KRANC_DIFF_FUNCTIONS +# if ! VECTORISE_INLINE +# define KRANC_DIFF_FUNCTIONS +# endif + +# undef E +# define E (ToReal(M_E)) -#undef Pi -#define Pi (ToReal(M_PI)) +# undef Pi +# define Pi (ToReal(M_PI)) -#undef ToReal -#define ToReal(x) (vec_set1((CCTK_REAL)(x))) +# undef Sign +# define Sign(x) -999999999 // poison -#undef Sign -#define Sign(x) -999999999 // poison +# undef ToReal +# define ToReal(x) (vec_set1((CCTK_REAL)(x))) +# undef KRANC_GFOFFSET3D +# define KRANC_GFOFFSET3D(var,i,j,k) \ + vec_loadu_maybe3((i),(j),(k), \ + *(CCTK_REAL const*)& \ + ((char const*)(var))[cdi*(i)+cdj*(j)+cdk*(k)]) +#endif // KRANC_C #endif // #ifndef VECTORS_H |