diff options
author | eschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a> | 2012-02-05 19:50:57 +0000 |
---|---|---|
committer | eschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a> | 2012-02-05 19:50:57 +0000 |
commit | 8c458c0b11937927bcb8abe2fc226e7551be5d28 (patch) | |
tree | 36d2af1a9f7336e674bdc3b6d99ee60a7d7b3dde | |
parent | beddbd6b87f50dca87b9462bf3c02320470db257 (diff) |
Correct test case for partial vector stores
git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/Vectors/trunk@49 105869f7-3296-0410-a4ea-f4349344b45a
-rw-r--r-- | src/test.cc | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/test.cc b/src/test.cc index a64456f..1dd3fd0 100644 --- a/src/test.cc +++ b/src/test.cc @@ -131,15 +131,24 @@ void Vectors_Test(CCTK_ARGUMENTS) VECTEST("vec_store", sv, b[i]); sv = av; vec_store_nta(*s, bv); VECTEST("vec_store_nta", sv, b[i]); - for (int dlo=-1; dlo<=CCTK_REAL_VEC_SIZE; ++dlo) { - for (int dhi=dlo; dhi<=CCTK_REAL_VEC_SIZE; ++dhi) { - if (dlo>0 and dhi>dlo and dhi<CCTK_REAL_VEC_SIZE) { - sv = av; - vec_store_partial_prepare(0, dlo, dhi); - vec_store_nta_partial(*s, bv); + int const arenaitems = 3; + int const arenasize = arenaitems * CCTK_REAL_VEC_SIZE; + for (int ilo=0; ilo<arenasize; ++ilo) { + for (int ihi=0; ihi<arenasize; ++ihi) { + // Initialise arena to a everywhere + for (int n=0; n<arenaitems; ++n) { + lv[n] = av; + } + // Set arena to b in the "interior" + for (int i=(ilo & -CCTK_REAL_VEC_SIZE); i<ihi; i+=CCTK_REAL_VEC_SIZE) { + vec_store_partial_prepare(i, ilo, ihi); + vec_store_nta_partial(l[i], bv); + } + for (int i=0; i<arenasize; ++i) { snprintf (testname, sizeof testname, - "vec_store_nta_partial[%d,%d]", dlo, dhi); - VECTEST(testname, sv, i>=dlo && i<dhi ? b[i] : a[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)]); } } } |