Using imm8 through inline assembler

Etienne Cimon via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Oct 28 15:50:31 PDT 2014


> "imm8" is not a register. "imm" stands for "immediate", i.e. a
> constant, hard-coded value. E.g.:
>
> asm { vpermilps YMM0, YMM1, 0 /* no idea what would be a
> meaningful value */; }
>

Oh, well, that makes sense. This means I should use string mixins to 
insert the actual value.

I couldn't run AVX2 either, I have to work on this blindly until I get 
my hands on a new Xeon E5-2620 3rd generation processor. :/


 > I think my CPU doesn't have AVX, so I can't test anything beyond
compiling. When running all I get is "Illegal instruction (core
dumped)".

My error is vmovdqu, I get:

  Error: AVX vector types not supported

Anyone know what this is? I can't find a reference to it in the dmd 
compiler code.

Also, 'vpunpcklqdq _ymm, _ymm, _ymm' is undefined in DMD, so I get : 
avx2.d(23): Error: bad type/size of operands 'vpunpcklqdq'


Looks like abunch of work is needed to get avx2 working...


More information about the Digitalmars-d-learn mailing list