* @brief Store lowest N (vector width) bytes into an unaligned address. */
| 532 | * @brief Store lowest N (vector width) bytes into an unaligned address. |
| 533 | */ |
| 534 | ASTCENC_SIMD_INLINE void store_nbytes(vint8 a, uint8_t* p) |
| 535 | { |
| 536 | // This is the most logical implementation, but the convenience intrinsic |
| 537 | // is missing on older compilers (supported in g++ 9 and clang++ 9). |
| 538 | // _mm_storeu_si64(ptr, _mm256_extracti128_si256(v.m, 0)) |
| 539 | _mm_storel_epi64(reinterpret_cast<__m128i*>(p), _mm256_extracti128_si256(a.m, 0)); |
| 540 | } |
| 541 | |
| 542 | /** |
| 543 | * @brief Pack low 8 bits of N (vector width) lanes into bottom of vector. |
no outgoing calls
no test coverage detected