www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 21037] New: AVX code sometimes fails to set VEX prefix


          Issue ID: 21037
           Summary: AVX code sometimes fails to set VEX prefix
           Product: D
           Version: D2
          Hardware: x86_64
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: bugzilla digitalmars.com

Suddenly this started failing in the test suite. The failing code is extracted
from runnable/testxmm.d:

import core.simd;
import core.stdc.string;
import core.stdc.stdio;

version (D_AVX)
    void foo_byte32(byte t, byte s)
        byte32 f = s;  (***)
        auto p = cast(byte*)&f;
        foreach (i; 0 .. 32)
            printf("[%d]: %d\n", i, p[i]);
            assert(p[i] == s);

    void main()
        foo_byte32(5, -10);

The (***) is where the problem is, the MOVDQA instruction generated should be

Jul 11 2020