Pārlūkot izejas kodu

SDL_intrin.h: workaround clang-cl failures when avx isn't enabled.

Ozkan Sezer 2 gadi atpakaļ
vecāks
revīzija
f5a92092e1
1 mainītis faili ar 9 papildinājumiem un 0 dzēšanām
  1. 9 0
      include/SDL3/SDL_intrin.h

+ 9 - 0
include/SDL3/SDL_intrin.h

@@ -140,14 +140,23 @@ _m_prefetch(void *__P)
 #  define SDL_SSE4_2_INTRINSICS 1
 #  include <nmmintrin.h>
 # endif
+# if defined(__clang__) && (defined(_MSC_VER) || defined(__SCE__)) && !defined(__AVX__) && !defined(SDL_DISABLE_AVX)
+#  define SDL_DISABLE_AVX       /* see https://reviews.llvm.org/D20291 and https://reviews.llvm.org/D79194 */
+# endif
 # if (defined(_MSC_VER) || defined(__AVX__) || defined(SDL_HAS_TARGET_ATTRIBS)) && !defined(SDL_DISABLE_AVX)
 #  define SDL_AVX_INTRINSICS 1
 #  include <immintrin.h>
 # endif
+# if defined(__clang__) && (defined(_MSC_VER) || defined(__SCE__)) && !defined(__AVX2__) && !defined(SDL_DISABLE_AVX2)
+#  define SDL_DISABLE_AVX2      /* see https://reviews.llvm.org/D20291 and https://reviews.llvm.org/D79194 */
+# endif
 # if (defined(_MSC_VER) || defined(__AVX2__) || defined(SDL_HAS_TARGET_ATTRIBS)) && !defined(SDL_DISABLE_AVX2)
 #  define SDL_AVX2_INTRINSICS 1
 #  include <immintrin.h>
 # endif
+# if defined(__clang__) && (defined(_MSC_VER) || defined(__SCE__)) && !defined(__AVX512F__) && !defined(SDL_DISABLE_AVX512F)
+#  define SDL_DISABLE_AVX512F   /* see https://reviews.llvm.org/D20291 and https://reviews.llvm.org/D79194 */
+# endif
 # if (defined(_MSC_VER) || defined(__AVX512F__) || defined(SDL_HAS_TARGET_ATTRIBS)) && !defined(SDL_DISABLE_AVX512F)
 #  define SDL_AVX512F_INTRINSICS 1
 #  include <immintrin.h>