On 8 October 2012 22:34, Manu <turkey...@gmail.com> wrote: > On 9 October 2012 00:30, Iain Buclaw <ibuc...@ubuntu.com> wrote: >> >> 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. > > > GCC offers perfectly good intrinsics anyway. And they're superior to the DMD > intrinsics too. >
Provided that a) the architecture provides them, and b) you have the right -march/-mtune flags turned on. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';