On Monday, 19 July 2021 at 11:39:02 UTC, Basile B. wrote:
And what about the `extern(C)` issue ? Does it make sense to be used when the parameters are int4 ?

The original inline asm was buggy and only 'worked' by accident (not using the 2nd input operand at all...) with extern(D) reversed parameters. At least for Posix x64, the C calling convention is well-defined for vectors and equivalent to extern(D) (except for the latter's parameter reversal). Windows and 32-bit x86 are different; for Windows, extern(D) pays off, as LDC's ABI is similar to the MSVC++ __vectorcall calling convention (passing vectors in SIMD registers).

Reply via email to