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