avx2: implement for mm256_stream_load_si256
Fixes
@@ -3127,6 +3127,24 @@ simde_mm256_srlv_epi64 (simde__m256i a, simde__m256i b) {
#define _mm256_srlv_epi64(a, b) simde_mm256_srlv_epi64(a, b)
#endif
+SIMDE_FUNCTION_ATTRIBUTES
+simde__m256i
+simde_mm256_stream_load_si256 (const simde__m256i* mem_addr) {
+ simde_assert_aligned(32, mem_addr);
+
+ #if defined(SIMDE_X86_AVX2_NATIVE)
+ return _mm256_stream_load_si256(HEDLEY_CONST_CAST(simde__m256i*, mem_addr));
+ #else
+ /* Use memcpy to avoid aliasing; data must still be 32-byte aligned */
+ simde__m256i r;
+ simde_memcpy(&r, mem_addr, sizeof(r));
+ return r;
+ #endif
+}
+#if defined(SIMDE_X86_AVX2_ENABLE_NATIVE_ALIASES)
+# define _mm256_stream_load_si256(mem_addr) simde_mm256_stream_load_si256(mem_addr)
+#endif
+
SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_sub_epi8 (simde__m256i a, simde__m256i b) {
