Mercurial > vec
comparison src/impl/x86/avx2.c @ 35:99e4539f922f
Backed out changeset e49e70f7012f
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Apr 2025 17:40:51 -0400 |
parents | bf6ad516f1e6 |
children |
comparison
equal
deleted
inserted
replaced
34:8b5e0974fd41 | 35:99e4539f922f |
---|---|
107 #define VEC_AVX2_DEFINE_OPERATIONS_SIGN(sign, bits, size) \ | 107 #define VEC_AVX2_DEFINE_OPERATIONS_SIGN(sign, bits, size) \ |
108 union v##sign##int##bits##x##size##_impl_data { \ | 108 union v##sign##int##bits##x##size##_impl_data { \ |
109 v##sign##int##bits##x##size vec; \ | 109 v##sign##int##bits##x##size vec; \ |
110 __m256i avx2; \ | 110 __m256i avx2; \ |
111 }; \ | 111 }; \ |
112 \ | |
113 VEC_STATIC_ASSERT(VEC_ALIGNOF(__m256i) <= VEC_ALIGNOF(v##sign##int##bits##x##size), "vec: v" #sign "int" #bits "x" #size " alignment needs to be expanded to fit intrinsic type size"); \ | |
114 VEC_STATIC_ASSERT(sizeof(__m256i) <= sizeof(v##sign##int##bits##x##size), "vec: v" #sign "int" #bits "x" #size " needs to be expanded to fit intrinsic type size"); \ | |
115 \ | 112 \ |
116 static v##sign##int##bits##x##size v##sign##int##bits##x##size##_avx2_load_aligned(const vec_##sign##int##bits in[size]) \ | 113 static v##sign##int##bits##x##size v##sign##int##bits##x##size##_avx2_load_aligned(const vec_##sign##int##bits in[size]) \ |
117 { \ | 114 { \ |
118 union v##sign##int##bits##x##size##_impl_data vec; \ | 115 union v##sign##int##bits##x##size##_impl_data vec; \ |
119 vec.avx2 = _mm256_load_si256((const __m256i *)in); \ | 116 vec.avx2 = _mm256_load_si256((const __m256i *)in); \ |