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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)