Hi Michael
Thanks for the hint, I did this (not yet pushed):
-#include <xmmintrin.h>
-
/* yes I know, the top of this file is quite ugly */
+define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/sse.h>
But I end up with the same error that I pasted earlier. Am I missing something in the hint?
Please let me know.
Looking at /usr/lib/gcc/x86_64-linux-gnu/9/include/xmmintrin.h we find the following definition
/* Internal data types for implementing the intrinsics. */
typedef float __v4sf __attribute__ ((__vector_size__ (16)));
But this doesn't look very portable.
Grepping through the SIMDe source for a portable version, we see that __vector_size__ is used in simde/simde-common.h
# if \
HEDLEY_GCC_VERSION_CHECK(4,8,0)
# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size)))
So we keep looking for a usage of SIMDE_VECTOR involving a float, and in simde/x86/sse.h we find
SIMDE_ALIGN_TO_16 simde_float32 f32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS;
so the portable thing to emulate the private definition is to do
typedef simde_float32 __v4sf SIMDE_VECTOR(16);
FYI, you mentioned using the porterbox to test, you can also cross-build for arm64 on an amd64 system using cowbuilder-dist.
cowbuilder-dist sid build scrappie_1.4.2-3.dsc --host-arch arm64
If you have qemu-user-static installed it can even run build-time tests via "--no-auto-cross"
cowbuilder-dist sid build scrappie_1.4.2-3.dsc --host-arch arm64 --no-auto-cross