@@ -52,6 +52,21 @@ SIMDE_BEGIN_DECLS_
5252 #define _mm256_storeu_epi64 (mem_addr , a ) simde_mm256_storeu_si256(mem_addr, a)
5353#endif
5454
55+ SIMDE_FUNCTION_ATTRIBUTES
56+ void
57+ simde_mm256_mask_storeu_epi8 (void * mem_addr , simde__mmask32 k , simde__m256i a ) {
58+ #if defined(SIMDE_X86_AVX512BW_NATIVE ) && defined(SIMDE_X86_AVX512VL_NATIVE )
59+ _mm256_mask_storeu_epi8 (HEDLEY_REINTERPRET_CAST (void * , mem_addr ), k , a );
60+ #else
61+ const simde__m256i zero = simde_mm256_setzero_si256 ();
62+ simde_mm256_storeu_epi8 (mem_addr , simde_mm256_mask_mov_epi8 (zero , k , a ));
63+ #endif
64+ }
65+ #if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES ) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES )
66+ #undef _mm256_mask_storeu_epi8
67+ #define _mm256_mask_storeu_epi8 (mem_addr , k , a ) simde_mm256_mask_storeu_epi8(mem_addr, k, a)
68+ #endif
69+
5570SIMDE_FUNCTION_ATTRIBUTES
5671void
5772simde_mm256_mask_storeu_epi16 (void * mem_addr , simde__mmask16 k , simde__m256i a ) {
@@ -67,6 +82,36 @@ simde_mm256_mask_storeu_epi16 (void * mem_addr, simde__mmask16 k, simde__m256i a
6782 #define _mm256_mask_storeu_epi16 (mem_addr , k , a ) simde_mm256_mask_storeu_epi16(mem_addr, k, a)
6883#endif
6984
85+ SIMDE_FUNCTION_ATTRIBUTES
86+ void
87+ simde_mm256_mask_storeu_epi32 (void * mem_addr , simde__mmask8 k , simde__m256i a ) {
88+ #if defined(SIMDE_X86_AVX512F_NATIVE ) && defined(SIMDE_X86_AVX512VL_NATIVE )
89+ _mm256_mask_storeu_epi32 (HEDLEY_REINTERPRET_CAST (void * , mem_addr ), k , a );
90+ #else
91+ const simde__m256i zero = simde_mm256_setzero_si256 ();
92+ simde_mm256_storeu_epi32 (mem_addr , simde_mm256_mask_mov_epi32 (zero , k , a ));
93+ #endif
94+ }
95+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES ) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES )
96+ #undef _mm256_mask_storeu_epi32
97+ #define _mm256_mask_storeu_epi32 (mem_addr , k , a ) simde_mm256_mask_storeu_epi32(mem_addr, k, a)
98+ #endif
99+
100+ SIMDE_FUNCTION_ATTRIBUTES
101+ void
102+ simde_mm256_mask_storeu_epi64 (void * mem_addr , simde__mmask8 k , simde__m256i a ) {
103+ #if defined(SIMDE_X86_AVX512F_NATIVE ) && defined(SIMDE_X86_AVX512VL_NATIVE )
104+ _mm256_mask_storeu_epi64 (HEDLEY_REINTERPRET_CAST (void * , mem_addr ), k , a );
105+ #else
106+ const simde__m256i zero = simde_mm256_setzero_si256 ();
107+ simde_mm256_storeu_epi64 (mem_addr , simde_mm256_mask_mov_epi64 (zero , k , a ));
108+ #endif
109+ }
110+ #if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES ) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES )
111+ #undef _mm256_mask_storeu_epi64
112+ #define _mm256_mask_storeu_epi64 (mem_addr , k , a ) simde_mm256_mask_storeu_epi64(mem_addr, k, a)
113+ #endif
114+
70115SIMDE_FUNCTION_ATTRIBUTES
71116void
72117simde_mm512_storeu_ps (void * mem_addr , simde__m512 a ) {
0 commit comments