https://issues.dlang.org/show_bug.cgi?id=16489
--- Comment #5 from Илья Ярошенко <[email protected]> --- (In reply to Walter Bright from comment #4) > There are enough issues with the example that it won't compile, and > inventing changes to make it compile may not show the issue. Can you please > post one that does compile and illustrates the issue? void foo( ref __vector(float[4])[2][6] c, __vector(float[4])[2]* a, __vector(float[4])[6]* b, size_t length) { import std.meta; __vector(float[4])[2][6] reg = void; // should be located in the registers reg = c; __vector(float[4])[2] ai = void; __vector(float[4])[6] bi = void; do { ai[0] = a[0][0]; // should be located in the registers ai[1] = a[0][1]; // should be located in the registers foreach(i; AliasSeq!(0, 1, 2, 3, 4, 5)) { bi[i] = b[0][i]; // Issue 16488, // should be located in the registers reg[i][0] += ai[0] * bi[i]; reg[i][1] += ai[1] * bi[i]; } a++; b++; } while(--length); c = reg; } --
