aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2012-12-31 14:30:41 +0000
committereschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2012-12-31 14:30:41 +0000
commit19379d2ae9da591f4f7e7641a679461062b953c9 (patch)
tree098c0a8573178652bd53a6795db46e5eb0145bfe
parent3d631f0cc13327b1c1903994dd2c37742a786529 (diff)
Support 8-element vectors
git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/Vectors/trunk@75 105869f7-3296-0410-a4ea-f4349344b45a
-rw-r--r--src/test.cc23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/test.cc b/src/test.cc
index ab16a39..4a3f6d1 100644
--- a/src/test.cc
+++ b/src/test.cc
@@ -14,7 +14,7 @@ using namespace std;
-inline CCTK_REAL my_sgn (CCTK_REAL const x)
+inline CCTK_REAL my_sgn(CCTK_REAL const x)
{
return x == (CCTK_REAL)0.0 ? (CCTK_REAL)0.0 : copysign((CCTK_REAL)1.0, x);
}
@@ -24,7 +24,8 @@ inline CCTK_REAL my_sgn (CCTK_REAL const x)
#define SCALARTEST(testname, vecexpr, scalarexpr) \
do { \
if (verbose) { \
- CCTK_VInfo (CCTK_THORNSTRING, "Test %s...", testname); \
+ CCTK_VInfo(CCTK_THORNSTRING, "Test %s...", testname); \
+ fflush(stdout); \
} \
CCTK_REAL const res = (scalarexpr); \
CCTK_REAL const vecres = (vecexpr); \
@@ -45,7 +46,8 @@ inline CCTK_REAL my_sgn (CCTK_REAL const x)
#define VECTEST(testname, vecexpr, scalarexpr) \
do { \
if (verbose) { \
- CCTK_VInfo (CCTK_THORNSTRING, "Test %s...", testname); \
+ CCTK_VInfo(CCTK_THORNSTRING, "Test %s...", testname); \
+ fflush(stdout); \
} \
CCTK_REAL_VEC rv = (vecexpr); \
for (int i=0; i<CCTK_REAL_VEC_SIZE; i++) { \
@@ -70,7 +72,8 @@ inline CCTK_REAL my_sgn (CCTK_REAL const x)
#define VECBITTEST(testname, vecexpr, scalarexpr) \
do { \
if (verbose) { \
- CCTK_VInfo (CCTK_THORNSTRING, "Test %s...", testname); \
+ CCTK_VInfo(CCTK_THORNSTRING, "Test %s...", testname); \
+ fflush(stdout); \
} \
CCTK_BOOLEAN_VEC rv = (vecexpr); \
for (int i=0; i<CCTK_REAL_VEC_SIZE; i++) { \
@@ -96,7 +99,7 @@ void Vectors_Test(CCTK_ARGUMENTS)
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
- CCTK_INFO ("Testing vectorisation... [errors may result in segfaults]");
+ CCTK_INFO("Testing vectorisation... [errors may result in segfaults]");
fflush(stdout);
char testname[100];
@@ -147,6 +150,8 @@ void Vectors_Test(CCTK_ARGUMENTS)
VECTEST("vec_set", vec_set(a[0],a[1]), a[i]);
#elif CCTK_REAL_VEC_SIZE == 4
VECTEST("vec_set", vec_set(a[0],a[1],a[2],a[3]), a[i]);
+#elif CCTK_REAL_VEC_SIZE == 8
+ VECTEST("vec_set", vec_set(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]), a[i]);
#else
# error "Unsupported vector size"
#endif
@@ -170,8 +175,8 @@ void Vectors_Test(CCTK_ARGUMENTS)
for (int d2=0; d2<CCTK_REAL_VEC_SIZE; ++d2) {
for (int d3=0; d3<CCTK_REAL_VEC_SIZE; ++d3) {
if (not (VECTORISE and VECTORISE_ALIGNED_ARRAYS) or (d2==0 and d3==0)) {
- snprintf (testname, sizeof testname,
- "vec_loadu_maybe3[%d,%d,%d]", d1,d2,d3);
+ snprintf(testname, sizeof testname,
+ "vec_loadu_maybe3[%d,%d,%d]", d1,d2,d3);
VECTEST(testname,
vec_loadu_maybe3(d1,d2,d3,l[d1+d2+d3]), l[i+d1+d2+d3]);
}
@@ -199,7 +204,7 @@ void Vectors_Test(CCTK_ARGUMENTS)
}
for (int i=0; i<arenasize; ++i) {
snprintf(testname, sizeof testname,
- "vec_store_nta_partial[%d,%d;%d]", ilo, ihi, i);
+ "vec_store_nta_partial[%d..%d][%d]", ilo, ihi, i);
SCALARTEST(testname, l[i],
(i>=ilo and i<ihi ? b : a)[i & (CCTK_REAL_VEC_SIZE-1)]);
}
@@ -282,6 +287,8 @@ void Vectors_Test(CCTK_ARGUMENTS)
CCTK_BOOLEAN_VEC testkltrue = kltrue;
CCTK_BOOLEAN klfalse1 = vec_elt(testklfalse,0);
CCTK_BOOLEAN kltrue1 = vec_elt(testkltrue ,0);
+ VECBITTEST("constant F", klfalse, klfalse1);
+ VECBITTEST("constant T", kltrue , kltrue1 );
VECBITTEST("klnot F", klnot(klfalse), kltrue1 );
VECBITTEST("klnot T", klnot(kltrue ), klfalse1);
VECBITTEST("kland FF", kland(klfalse,klfalse), klfalse1);