On Saturday, 8 October 2016 at 18:10:14 UTC, Ilya Yaroshenko wrote:
https://github.com/MartinNowak/druntime/blob/23373260e65af5edea989b61d6660832fedbec15/src/core/internal/arrayop.d#L78.

Could you please give an example how it works for user?
I mean aligned vs unaligned.

???

You could pack them like so.
float4 vec = loadUnaligned!float4(ptrToFloats);
float4 vec = loadAligned!float4(ptrToFloats);

The wrappers are only necessary because DMD/GDC/ldc have different SIMD implementations. Would be great if someone wrote a common basis library, unfortunately Manu's std.simd got stuck in progress.

Does this is always inlined intrinsic (i mean this function has not any its machine code in the object file / library e.g. always inlined into the function body even in debug compilaiton)?

D doesn't have macros and can't force inline, to inline w/o inliner you could use mixin templates, but relying on the inliner to do it's job would be cleaner.

Reply via email to