On 8 October 2012 22:18, F i L <witte2...@gmail.com> wrote: > Iain Buclaw wrote: >> >> I fixed them again. >> >> >> https://github.com/D-Programming-GDC/GDC/commit/9402516e0b07031e841a15849f5dc94ae81dccdc#L4R1201 >> >> >> float a = 1, b = 2, c = 3, d = 4; >> float4 f = [a,b,c,d]; >> >> ===> >> movss -16(%rbp), %xmm0 >> movss -12(%rbp), %xmm1 > > > Nice, not even DMD can do this yet. Can these changes be pushed upstream? > > On a side note, I understand GDC doesn't support the core.simd.__simd(...) > command, and I'm sure you have good reasons for this. However, it would > still be nice if: > > a) this interface was supported through function-wrappers, or.. > b) DMD/LDC could find common ground with GDC in SIMD instructions > > I just think this sort of difference should be worked out early on. If this > simply can't or won't be changed, would you mind giving a short explanation > as to why? (Please forgive if you've explained this already before). Is > core.simd designed to really never be used and Manu's std.simd is really the > starting place for libraries? (I believe I remember him mentioning that) >
I'm refusing to implement any intrinsic that is tied to a specific architecture. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';