10 #include <catch2/catch_test_macros.hpp>
11 #include <catch2/catch_template_test_macros.hpp>
17 template <
class T,
int n = 1>
25 typedef std::tuple<data<double, 2>,
39 int pad = coreneuron::soa_padded_size<1>(11, 1);
43 pad = coreneuron::soa_padded_size<1>(11, 0);
46 pad = coreneuron::soa_padded_size<2>(11, 0);
49 pad = coreneuron::soa_padded_size<4>(11, 0);
52 pad = coreneuron::soa_padded_size<8>(11, 0);
55 pad = coreneuron::soa_padded_size<16>(11, 0);
58 pad = coreneuron::soa_padded_size<32>(11, 0);
62 pad = coreneuron::soa_padded_size<1>(32, 0);
65 pad = coreneuron::soa_padded_size<2>(32, 0);
68 pad = coreneuron::soa_padded_size<4>(32, 0);
71 pad = coreneuron::soa_padded_size<8>(32, 0);
74 pad = coreneuron::soa_padded_size<16>(32, 0);
77 pad = coreneuron::soa_padded_size<32>(32, 0);
81 pad = coreneuron::soa_padded_size<1>(33, 0);
84 pad = coreneuron::soa_padded_size<2>(33, 0);
87 pad = coreneuron::soa_padded_size<4>(33, 0);
90 pad = coreneuron::soa_padded_size<8>(33, 0);
93 pad = coreneuron::soa_padded_size<16>(33, 0);
96 pad = coreneuron::soa_padded_size<32>(33, 0);
103 "[memory_alignment_simd_false]",
105 const int c = TestType::chunk;
106 int total_size_chunk = coreneuron::soa_padded_size<c>(247, 0);
107 int ne = 6 * total_size_chunk;
109 typename TestType::value_type*
data = (
typename TestType::value_type*)
112 for (
int i = 1;
i < 6;
i += 2) {
113 bool b = coreneuron::is_aligned((
data +
i * total_size_chunk), 16);
117 for (
int i = 0;
i < 6;
i += 2) {
118 bool b = coreneuron::is_aligned((
data +
i * total_size_chunk), 16);
126 "[memory_alignment_simd_true]",
128 const int c = TestType::chunk;
129 int total_size_chunk = coreneuron::soa_padded_size<c>(247, 0);
130 int ne = 6 * total_size_chunk;
132 typename TestType::value_type*
data = (
typename TestType::value_type*)
135 for (
int i = 0;
i < 6; ++
i) {
136 bool b = coreneuron::is_aligned((
data +
i * total_size_chunk), 16);
TEST_CASE("padding_simd", "[PaddingCheck]")
std::tuple< data< double, 2 >, data< double, 4 >, data< double, 8 >, data< double, 16 >, data< double, 32 >, data< int, 2 >, data< int, 4 >, data< int, 8 >, data< int, 16 >, data< int, 32 > > chunk_data_type
std::tuple< data< double >, data< long long int > > chunk_default_data_type
TEMPLATE_LIST_TEST_CASE("memory_alignment_simd_false", "[memory_alignment_simd_false]", chunk_default_data_type)
Even number is randomly depends of the TYPE!!! and the number of elements.
void free_memory(void *pointer)
void * ecalloc_align(size_t n, size_t size, size_t alignment)
int const size_t const size_t n