endif()
set(CMAKE_REQUIRED_FLAGS)
-#
-# check for __builtin_bitreverse16() support in the compiler
-#
-set(CMAKE_REQUIRED_FLAGS ${ZNOLTOFLAG})
-check_c_source_compiles(
- "int main(void) {
- unsigned short val = 0x1234;
- unsigned short test = __builtin_bitreverse16(val);
- (void)test;
- return 0;
- }"
- HAVE_BUILTIN_BITREVERSE16
-)
-if(HAVE_BUILTIN_BITREVERSE16)
- add_definitions(-DHAVE_BUILTIN_BITREVERSE16)
-endif()
-set(CMAKE_REQUIRED_FLAGS)
-
#
# check for ptrdiff_t support
#
echo "Checking for __builtin_ctzll ... No." | tee -a configure.log
fi
-# Check for __builtin_bitreverse16() support in compiler
-cat > $test.c << EOF
-unsigned short f(unsigned short x) { return __builtin_bitreverse16(x); }
-int main(void) { return 0; }
-EOF
-if try ${CC} ${CFLAGS} $test.c $LDSHAREDLIBC; then
- echo "Checking for __builtin_bitreverse16 ... Yes." | tee -a configure.log
- CFLAGS="$CFLAGS -DHAVE_BUILTIN_BITREVERSE16"
- SFLAGS="$SFLAGS -DHAVE_BUILTIN_BITREVERSE16"
-else
- echo "Checking for __builtin_bitreverse16 ... No." | tee -a configure.log
-fi
-
check_avx2_intrinsics() {
# Check whether compiler supports AVX2 intrinsics
cat > $test.c << EOF
#endif // _MSC_VER && !__clang__
-/* Double-check whether or not __builtin_bitreverse16 is available. It
- may not be defined unless compiled for arch. */
-#if !defined(HAVE_BUILTIN_BITREVERSE16) && defined(__has_builtin)
-# if __has_builtin(__builtin_bitreverse16)
-# define HAVE_BUILTIN_BITREVERSE16
-# endif
-#endif
-
-#ifndef HAVE_BUILTIN_BITREVERSE16
+#if !(defined(__has_builtin) && __has_builtin(__builtin_bitreverse16))
# ifdef __loongarch__
/* LoongArch bit reversal for 16-bit values */
# undef bitrev8
# endif
-#define HAVE_BUILTIN_BITREVERSE16
-#endif
+#endif // __builtin_bitreverse16
#endif // include guard FALLBACK_BUILTINS_H