On 3 October 2012 02:31, jerro <a...@a.com> wrote: >> import core.simd, std.stdio; >> >> void main() >> { >> float4 a = 1, b = 2; >> writeln((a + b).array); // WORKS: [3, 3, 3, 3] >> >> float4 c = [1, 2, 3, 4]; // ERROR: "Stored value type does >> // not match pointer operand type!" >> // [..a bunch of LLVM error code..] >> >> float4 c = 0, d = 1; >> c.array[0] = 4; >> c.ptr[1] = 4; >> writeln((c + d).array); // WRONG: [1, 1, 1, 1] >> } > > > Oh, that doesn't work for me either. I never tried to use those, so I didn't > notice that before. This code gives me internal compiler errors with GDC and > DMD too (with "float4 c = [1, 2, 3, 4]" commented out). I'm using DMD 2.060 > and a recent versions of GDC and LDC on 64 bit Linux.
Then don't just talk about it, raise a bug - otherwise how do you expect it to get fixed! ( http://www.gdcproject.org/bugzilla ) I've made a note of the error you get with `__vector(float[4]) c = [1,2,3,4];' - That is because vector expressions implementation is very basic at the moment. Look forward to hear from all your experiences so we can make vector support rock solid in GDC. ;-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';