<div dir="ltr">On 23 December 2013 22:06, bearophile <span dir="ltr"><<a href="mailto:bearophileHUGS@lycos.com" target="_blank">bearophileHUGS@lycos.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Iain Buclaw:<div class="im"><br>
<br>
Did you really think that __simd went through a design phase? :-)<br>
<br></div>
I understand. So there is still a problem bigger than __simd.<br></blockquote><div><br></div><div>To be fair, I don't think this is as significant as it sounds. I agree, __simd had no real design, it was just a convenient implementation for DMD, but isn't that always the case for compiler intrinsics? In most cases, LLVM tries to mirror GCC intrinsics, but there are many significant distinctions between LLVM and GCC's intrinsics, making versions in the code for each compiler there too.</div>
<div>In my experience, there is always versioning issues when making use of compiler intrinsics, what's important is that the language is able to wrap them up cleanly and effectively. D currently satisfies this requirement to some extent, but in my experience with std.simd, to get to the 100% mark, I really need __forceinline. I can't really finish std.simd to a satisfactory level without it.</div>
</div></div></div>