Am 08.10.2014 20:56, schrieb Etienne:
I can't seem to find this function anywhere: __simd(void16*, void16)

The mangling seems to go through to dmd's glue.lib

This is for SSE2 operations:

MOVDQU => void _mm_storeu_si128 ( __m128i *p, __m128i a)
MOVDQU => __m128i _mm_loadu_si128 ( __m128i *p)

Would I have to write this with ASM?

I strongly advise to not use core.simd at this point. It is in a horribly broken state and generates code that is far from efficient. If you use core.simd your code will be slower then if you use normal floating point math. Also afaik core.simd is currently only supported by dmd meaning that yuo have to rewrite the code in case you want to go to ldc or gdc. If you need simd with dmd, write inline assembly. If you need simd with the other two compilers, use the gcc intrinsics, they work on both compilers.

Kind Regards
Benjamin Thaut

Reply via email to