alias __vector(float[4]) float4; void main() { float4 a = 1, b = 2; // 2.065: segfault // 2.066: Error: cannot compare float[4] and int[] assert((a + b).array == [3, 3, 3, 3]); // segfault on both 2.065 and 2.066 assert((a + b).array == [3.0f, 3.0f, 3.0f, 3.0f]); } The code works with ldc, however I had to revert changes to TypeVector::dotExp() from https://github.com/D-Programming-Language/dmd/pull/3467
Just an update to say that this still affects git HEAD, with exactly the same errors as 2.066 Bugs like this make SIMD in D a complete pain. C with gcc or icc is better to use.
At least it doesn't seg fault anymore.