annotate test/test.cc @ 39:f9ca85d2f14c

*: rearrange some things; add avx512bw support
author Paper <paper@tflc.us>
date Sat, 26 Apr 2025 15:31:39 -0400
parents 4b5a557aa64f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "vec/vec.h"
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
2
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
3 #include <iostream>
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
4
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
5 /* this test makes sure that vec can be included under C++ */
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
6 int main(void)
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
7 {
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
8 int ret = 0;
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
9
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
10 VUINT32x8_ALIGNED_ARRAY(varrin);
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
11 VUINT32x8_ALIGNED_ARRAY(varrout);
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
12
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
13 for (int i = 0; i < 8; i++)
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
14 varrin[i] = i;
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
15
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
16 vuint32x8 vec = vuint32x8_load_aligned(varrin);
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
17 vec = vuint32x8_add(vec, vec);
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
18
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
19 vuint32x8_store_aligned(vec, varrout);
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
20
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
21 for (int i = 0; i < 8; i++)
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
22 if (varrout[i] != (uint32_t)(varrin[i] + varrin[i]))
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
23 ret |= 1;
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
24
41dd962abdd1 *: allow compiling vec in a C++ translation unit
Paper <paper@tflc.us>
parents:
diff changeset
25 return ret;
37
4b5a557aa64f *: turns out extern is a practical joke. rewrite to be always inline again
Paper <paper@tflc.us>
parents: 17
diff changeset
26 }