On 22.01.2016 06:59, Iakh wrote:
import std.stdio;
import core.simd;

int pmovmskb(inout byte16 v)
{
     asm
     {
         movdqa XMM0, v;
         pmovmskb EAX, XMM0;
         ret;
     }
}
void main()
{
     byte16 a = [-1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
     auto i = pmovmskb(a);
}

I don't know much about these things, but it seems to be the `ret;`.

This doesn't segfault:
----
int pmovmskb(byte16 v)
{
    int r;
    asm
    {
        movdqa XMM0, v;
        pmovmskb EAX, XMM0;
        mov r, EAX;
    }
    return r;
}
----

Removed the `inout` because it doesn't make sense. You may be looking for `ref`.

Reply via email to