https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87558
Bug ID: 87558 Summary: Missing _mm_storeu_si64() intrinsic Product: gcc Version: 8.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gcc at gms dot tf Target Milestone: --- Minimal example: #include <emmintrin.h> void foo(__m128i x, unsigned char*o) { _mm_storeu_si64((void*)o, x); } Excpected behaviour: compiles fine with gcc -march=haswell Actual behaviour: '_mm_storeu_si64' was not declared in this scope. Also tested with gcc 7.2 and trunk. Same issue. FWIW, clang <= 7 also misses this intrinsic, but clang trunk has it. GCC does include _mm_storel_epi64(), though. The Intel Intrinsics Guide lists both as: void _mm_storeu_si64 (void* mem_addr, __m128i a) #include <immintrin.h> Instruction: movq m64, xmm CPUID Flags: SSE void _mm_storel_epi64 (__m128i* mem_addr, __m128i a) #include <emmintrin.h> Instruction: movq m64, xmm CPUID Flags: SSE2