www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15728] New: ICE while simd vec.f.array compared to ordinal

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: nobody puremagic.com
          Reporter: iaktakh gmail.com

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

--
Feb 26 2016