view 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
line wrap: on
line source

#include "vec/defs.h"

#define DEFINE_VARIANT(type, bits) \
	extern void test_benchmark_sample_minmax_##type##bits##_impl(vec_##type##bits *smpl, \
		uint32_t length, vec_##type##bits *pmin, vec_##type##bits *pmax) \
	{ \
		vec_##type##bits min = *pmin; \
		vec_##type##bits max = *pmax; \
	\
		while (length--) { \
			if (*smpl < min) min = *smpl; \
			if (*smpl > max) max = *smpl; \
	\
			smpl++; \
		} \
	\
		*pmin = min; \
		*pmax = max; \
	}

DEFINE_VARIANT(int, 8)
DEFINE_VARIANT(uint, 8)
DEFINE_VARIANT(int, 16)
DEFINE_VARIANT(uint, 16)
DEFINE_VARIANT(int, 32)
DEFINE_VARIANT(uint, 32)
DEFINE_VARIANT(f, 32)
DEFINE_VARIANT(int, 64)
DEFINE_VARIANT(uint, 64)
DEFINE_VARIANT(f, 64)