www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24390] New: AssertError src/dmd/backend/cgxmm.d(1476):

https://issues.dlang.org/show_bug.cgi?id=24390

          Issue ID: 24390
           Summary: AssertError src/dmd/backend/cgxmm.d(1476): Assertion
                    failure
           Product: D
           Version: D2
          Hardware: x86_64
                OS: All
            Status: NEW
          Severity: critical
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ibuclaw gdcproject.org

This is triggered by the back-end inliner.
---
import inteli.pmmintrin;

void main()
{
    __vector(int[4]) mmA ;
    __vector(int[4]) mmB ;
    auto mask = _mm_cmpestrm(mmA, mmB);
}

__vector(int[4]) _mm_cmpestrm(__vector(int[4]) mmA, __vector(int[4]) mmB)
{
    __vector(int[4]) R;
    for (int pos ; pos < 16; ++pos)
    {
        byte charK = (cast(__vector(byte[16]))mmA).array[pos];
        __vector(int[4]) eqMask = _mm_set1_epi8(charK);
        R = R & eqMask;

    }
    return R;
}
---
module inteli.pmmintrin;
public import inteli.emmintrin;
---
module inteli.emmintrin;
__vector(int[4]) _mm_set1_epi8 (byte a)
{
    __vector(byte[16]) b = a;
    return cast(__vector(int[4]))b;
}
---

--
Feb 12