www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - How can I use AVX instructions in D inline asm?

Hi.

Now I try to use SSE/AVX instructions in D inline asm.

I have a trouble about this.

In http://dlang.org/iasm.html ,
AVX seems to be supported according to SIMD section in the paeg.
But there is no AVX opcodes, like vaddps, in Opcodes section in
the page.

So I have assumed addps can be used as vaddps with AVX registers,
and I compile the following three code.

//1
asm
{
      addps XMM0, XMM1;
}

//2
asm
{
      addps YMM0, YMM1;
}

//3
asm
{
      vaddps YMM0, YMM1;
}

1 - OK
2 - undefined identifier YMMx (??? I expect OK or invalid
operands.)
3 - unkown opcode 'vaddps'(reasonable)

I have used ldc2 with llvm 3.5 and the compile following command.

ldc2 test.d -m64 -mcpu=core-avx2

My CPU supports AVX too.

Please point out what's wrong.

Thank you.
Sep 11 2014