Details
- Reviewers
craig.topper
Diff Detail
Event Timeline
Is there any reason why we can't just get rid of all the SSE movnt builtins and use __builtin_nontemporal_store instead (D12313)?
I wanted to suggest that too, but I think you'd have problems with the (natural?) alignment requirement of __builtin_nontemporal_store (whereas IIRC, movnti & friends accept unaligned pointers).
But now that I look at this again, I suppose we could have some attribute((aligned(1))), or something like r271214.
True, luckily that only affects _mm_stream_si32 and _mm_stream_si64 - the 'real' vector movnt stores all require type alignment. The _mm_stream_load_* (movntdqa) loads cases should be trivial as well.
I've created D21272 that covers the conversion of SSE/SSE2/AVX/AVX512 non-temporal aligned vector stores to use __builtin_nontemporal_store in headers
Abandon this patch? We replaced the x86 vector non-temporal store builtins with __builtin_nontemporal_store directly in the headers.