Browse Source

intrinsics: add lsx/lasx intrinsic headers when not disabled

__attribute__((target(xx))) is not supported by LoongArch64.
The following warning is emitted:
target attribute is not supported on this machine [-Wattributes]
Anonymous Maarten 2 years ago
parent
commit
b99f380498
2 changed files with 9 additions and 10 deletions
  1. 0 2
      CMakeLists.txt
  2. 9 8
      include/SDL3/SDL_intrin.h

+ 0 - 2
CMakeLists.txt

@@ -966,7 +966,6 @@ if(SDL_ASSEMBLY)
       cmake_pop_check_state()
 
       if(COMPILER_SUPPORTS_LSX AND HAVE_LSXINTRIN_H)
-        target_compile_options(sdl-build-options INTERFACE "-mlsx")
         set(HAVE_LSX TRUE)
       endif()
     endif()
@@ -982,7 +981,6 @@ if(SDL_ASSEMBLY)
       check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H)
       cmake_pop_check_state()
       if(COMPILER_SUPPORTS_LASX AND HAVE_LASXINTRIN_H)
-        target_compile_options(sdl-build-options INTERFACE "-mlasx")
         set(HAVE_LASX TRUE)
       endif()
     endif()

+ 9 - 8
include/SDL3/SDL_intrin.h

@@ -99,14 +99,15 @@ _m_prefetch(void *__P)
 # define SDL_TARGETING(x)
 #endif
 
-#if defined(__loongarch_sx) && !defined(SDL_DISABLE_LSX)
-# define SDL_LSX_INTRINSICS 1
-# include <lsxintrin.h>
-#endif
-
-#if defined(__loongarch_asx) && !defined(SDL_DISABLE_LASX)
-# define SDL_LASX_INTRINSICS 1
-# include <lasxintrin.h>
+#if defined(__loongarch64)
+# ifndef SDL_DISABLE_LSX
+#  define SDL_LSX_INTRINSICS 1
+#  include <lsxintrin.h>
+# endif
+# ifndef SDL_DISABLE_LASX
+#  define SDL_LASX_INTRINSICS 1
+#  include <lasxintrin.h>
+# endif
 #endif
 
 #if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)