if (clib_cpu_supports_ ## arch()) \
return & fn ## _ ##arch;
-#define CLIB_MULTIARCH_SELECT_FN(fn,...) \
- __VA_ARGS__ void * fn ## _multiarch_select(void) \
-{ \
- foreach_march_variant(CLIB_MULTIARCH_ARCH_CHECK, fn) \
- return & fn; \
-}
+/* FIXME to be removed */
+#define CLIB_MULTIARCH_SELECT_FN(fn,...)
#ifdef CLIB_MARCH_VARIANT
#define __CLIB_MULTIARCH_FN(a,b) a##_##b
clib_cpu_march_priority_avx2 ()
{
if (clib_cpu_supports_avx2 ())
- return 10;
+ return 50;
return -1;
}
#else
#define CLIB_MARCH_FN(fn, rtype, _args...) \
static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args); \
- extern int (*fn ## _selected) (_args); \
+ extern rtype (*fn ## _selected) (_args); \
extern int fn ## _selected_priority; \
CLIB_MARCH_FN_CONSTRUCTOR (fn) \
static rtype CLIB_CPU_OPTIMIZED CLIB_MARCH_SFX (fn ## _ma)(_args)