On 9 October 2012 21:56, F i L <span dir="ltr"><<a href="mailto:witte2008@gmail.com" target="_blank">witte2008@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Tuesday, 9 October 2012 at 19:18:35 UTC, F i L wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Manu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
std.simd already does have a mammoth mess of static if(arch & compiler).<br>
The thing about std.simd is that it's designed to be portable, so it<br>
doesn't make sense to expose the low-level sse intrinsics directly there.<br>
</blockquote>
<br>
Well, that's not really what I was suggesting. I was saying maybe eventually matching the agnostic gdc builtins in a separate module:<br>
<br>
    // core.builtins<br>
<br>
    import core.simd;<br>
<br>
    version (GNU)<br>
      import gcc.builtins;<br>
<br>
    void madd(ref float4 r, float4 a, float4 b)<br>
    {<br>
      version (X86_OR_X64)<br>
      {<br>
        version (DigitalMars)<br>
        {<br>
          r = __simd(XMM.PMADDWD, a, b);<br>
        }<br>
        else version (GNU)<br>
        {<br>
          __builtin_ia32_fmaddpd(r, a, b)<br>
        }<br>
      }<br>
    }<br>
<br>
then std.simd can just use a single function (madd) and forget about all the compiler-specific switches. This may be more work than it's worth and std.simd should just contain all the platform specific switches... idk, i'm just throwing out ideas.<br>

</blockquote>
<br></div></div>
You know... now that I think about it, this is pretty much EXACTLY what std.simd IS already... lol, forget all of that, please.<br>
</blockquote></div><br><div>Yes, I was gonna say...</div><div>We're discussing providing convenient access to the arch intrinsics directly, which may be useful in many situations, although I think use of std.simd would be encouraged for the most part, for portability reasons.</div>
<div>I'll take some time this weekend to do some experiments with GDC and LDC... actually, no I won't, I'm doing a 48 hour game jam (which I'll probably write in D too), but I'll do it soon! ;)</div>