Add autoconf macro to check for the bswap16 intrinsic.
authorRalph Giles <giles@thaumas.net>
Tue, 4 Nov 2014 19:57:28 +0000 (11:57 -0800)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 5 Nov 2014 05:18:48 +0000 (21:18 -0800)
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
m4/bswap.m4

index 926f820..72af333 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012  Xiph.org Foundation
+dnl Copyright (C) 2012-2014 Xiph.org Foundation
 dnl
 dnl Redistribution and use in source and binary forms, with or without
 dnl modification, are permitted provided that the following conditions
@@ -53,3 +53,30 @@ AC_DEFUN([XIPH_C_BSWAP32],
 
        )]
 )# XIPH_C_BSWAP32
+
+
+dnl @synopsis XIPH_C_BSWAP16
+dnl
+dnl @author Erik de Castro Lopo <erikd@mega-nerd.com>
+dnl
+dnl Dtermine whether the compiler has the __builtin_bswap16() intrinsic which
+dnl is likely to be present for most versions of GCC as well as Clang.
+
+AC_DEFUN([XIPH_C_BSWAP16],
+[AC_CACHE_CHECK(for bswap16 instrinsic,
+  ac_cv_c_bswap16,
+
+  # Initialize to no
+  ac_cv_c_bswap16=no
+  HAVE_BSWAP16=0
+
+  [AC_TRY_LINK([],
+    return __builtin_bswap16 (0) ;,
+    ac_cv_c_bswap16=yes
+    HAVE_BSWAP16=1
+  )]
+  AC_DEFINE_UNQUOTED(HAVE_BSWAP16, ${HAVE_BSWAP16},
+    [Compiler has the __builtin_bswap16 intrinsic])
+
+  )]
+)# XIPH_C_BSWAP16