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

          Issue ID: 15728
           Summary: ICE while simd vec.f.array compared to ordinal array
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: [email protected]
          Reporter: [email protected]

Here is two cases:
1) pass vector by ref, return, compare, ...ICE
2) apply op, compare, fail with exit code -11

import core.simd;

int4 f()
{
    int4 vec;
    return vec;
}

void main()
{
    int4 vec;
    assert(f.array == [-1, -1, -1, -1]);
    /*
       catch-bug ~master: building configuration "application"...
       Internal error: backend/cod1.c 1669
       dmd failed with exit code 1.
       */

    //assert((-vec).array == [-1, -1, -1, -1]);
    /*
       catch-bug ~master: building configuration "application"...
       dmd failed with exit code -11.
       */
}

In second case could be used unary or binary operator (v1 & v2), (-vec), ...
DMD64 D Compiler v2.070

--

Reply via email to