Mercurial > vec
annotate test/test_benchmark_simple.c @ 45:7955bed1d169 default tip
*: add preliminary floating point support
no x86 intrinsics just yet, but I did add altivec since it's
(arguably) the simplest :)
author | Paper <paper@tflc.us> |
---|---|
date | Wed, 30 Apr 2025 18:36:38 -0400 |
parents | 4b5a557aa64f |
children |
rev | line source |
---|---|
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
1 #include "vec/defs.h" |
37
4b5a557aa64f
*: turns out extern is a practical joke. rewrite to be always inline again
Paper <paper@tflc.us>
parents:
diff
changeset
|
2 |
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
3 #define DEFINE_VARIANT(type, bits) \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
4 extern void test_benchmark_sample_minmax_##type##bits##_impl(vec_##type##bits *smpl, \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
5 uint32_t length, vec_##type##bits *pmin, vec_##type##bits *pmax) \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
6 { \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
7 vec_##type##bits min = *pmin; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
8 vec_##type##bits max = *pmax; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
9 \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
10 while (length--) { \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
11 if (*smpl < min) min = *smpl; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
12 if (*smpl > max) max = *smpl; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
13 \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
14 smpl++; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
15 } \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
16 \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
17 *pmin = min; \ |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
18 *pmax = max; \ |
37
4b5a557aa64f
*: turns out extern is a practical joke. rewrite to be always inline again
Paper <paper@tflc.us>
parents:
diff
changeset
|
19 } |
4b5a557aa64f
*: turns out extern is a practical joke. rewrite to be always inline again
Paper <paper@tflc.us>
parents:
diff
changeset
|
20 |
45
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
21 DEFINE_VARIANT(int, 8) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
22 DEFINE_VARIANT(uint, 8) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
23 DEFINE_VARIANT(int, 16) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
24 DEFINE_VARIANT(uint, 16) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
25 DEFINE_VARIANT(int, 32) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
26 DEFINE_VARIANT(uint, 32) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
27 DEFINE_VARIANT(f, 32) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
28 DEFINE_VARIANT(int, 64) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
29 DEFINE_VARIANT(uint, 64) |
7955bed1d169
*: add preliminary floating point support
Paper <paper@tflc.us>
parents:
37
diff
changeset
|
30 DEFINE_VARIANT(f, 64) |