<div dir="ltr">Can you double check gcc's xmmintrin.h again. I'm pretty sure _mm_store1_ps is calling _mm_storeu_ps.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 25, 2016 at 3:31 AM, Simon Pilgrim <span dir="ltr"><<a href="mailto:llvm-dev@redking.me.uk" target="_blank">llvm-dev@redking.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">RKSimon created this revision.<br>
RKSimon added reviewers: craig.topper, spatel, andreadb.<br>
RKSimon added a subscriber: cfe-commits.<br>
RKSimon set the repository for this revision to rL LLVM.<br>
<br>
According to the gcc headers, intel intrinsics docs and msdn codegen the _mm_store1_ps/_mm_store1_pd (and their _mm_store_ps1/_mm_store_pd1 analogues) should require an aligned pointer - the clang headers are the only implementation I can find that assume non-aligned stores (by storing with _mm_storeu_ps/_mm_storeu_pd).<br>
<br>
This patch raises the alignment requirements to match the other implementations by calling _mm_store_ps/_mm_store_pd instead.<br>
<br>
I've also added the missing _mm_store_pd1 intrinsic (which maps to _mm_store1_pd like _mm_store_ps1 does to _mm_store1_ps).<br>
<br>
As a followup I'll update the llvm fast-isel tests to match this codegen.<br>
<br>
Repository:<br>
rL LLVM<br>
<br>
<a href="http://reviews.llvm.org/D20617" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20617</a><br>
<br>
Files:<br>
lib/Headers/emmintrin.h<br>
lib/Headers/xmmintrin.h<br>
test/CodeGen/sse-builtins.c<br>
test/CodeGen/sse2-builtins.c<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">~Craig</div>
</div>