Mercurial > vec
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 |
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 } |