https://issues.dlang.org/show_bug.cgi?id=17337
Issue ID: 17337
Summary: SIGILL for AVX vector initialization
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
cat > bug.d << CODE
alias ubyte16 = __vector(ubyte[16]);
ubyte16 bug(ubyte val)
{
immutable ubyte16 a = 0, b = val;
return b;
}
void main()
{
bug(12);
}
CODE
dmd -mcpu=avx -run bug
----
Error: program killed by signal 4 (SIGILL)
----
Turns out that dmd tries to encode a third operand into the vex.vvvv bits,
which ought to remain 0b1111 for the 2 operand VPUSHD instruction.
--