copy over custom _mm_loadu_si32 for old gcc

This commit is contained in:
dzaima 2022-12-01 13:37:01 +02:00
parent 4077596b89
commit 7c6676a492
2 changed files with 9 additions and 6 deletions

View File

@ -35,6 +35,13 @@
#include "../builtins.h"
#if SINGELI
#include <xmmintrin.h>
#if __GNUC__ && !__clang__ // old gcc versions don't define _mm_loadu_si32 & _mm_storeu_si32
static __m128i custom_loadu_si32(void* p) { return (__m128i) _mm_load_ss(p); }
static void custom_storeu_si32(void* p, __m128i x) { _mm_store_ss(p, _mm_castsi128_ps(x)); }
#define _mm_loadu_si32 custom_loadu_si32
#define _mm_storeu_si32 custom_storeu_si32
#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#include "../singeli/gen/select.c"

View File

@ -220,12 +220,8 @@ DEF_G(void, copy, B, (void* a, usz ms, B x, usz xs, usz l), ms, x, x
#if SINGELI
#include <xmmintrin.h>
#if __GNUC__ && !__clang__ // old gcc versions don't define _mm_loadu_si32 & _mm_storeu_si32
__m128i custom_loadu_si32(void* p) {
return (__m128i) _mm_load_ss(p);
}
void custom_storeu_si32(void* p, __m128i x) {
_mm_store_ss(p, _mm_castsi128_ps(x));
}
static __m128i custom_loadu_si32(void* p) { return (__m128i) _mm_load_ss(p); }
static void custom_storeu_si32(void* p, __m128i x) { _mm_store_ss(p, _mm_castsi128_ps(x)); }
#define _mm_loadu_si32 custom_loadu_si32
#define _mm_storeu_si32 custom_storeu_si32
#endif