dnl opus-intrinsics.m4
dnl macro for testing for support for compiler intrinsics, either by default or with a compiler flag

dnl OPUS_CHECK_INTRINSICS(NAME-OF-INTRINSICS, COMPILER-FLAG-FOR-INTRINSICS, VAR-IF-PRESENT, VAR-IF-DEFAULT, TEST-PROGRAM-HEADER, TEST-PROGRAM-BODY)
AC_DEFUN([OPUS_CHECK_INTRINSICS],
[
   AC_MSG_CHECKING([if compiler supports $1 intrinsics])
   AC_LINK_IFELSE(
     [AC_LANG_PROGRAM($5, $6)],
     [
        $3=1
        $4=1
        AC_MSG_RESULT([yes])
      ],[
        $4=0
        AC_MSG_RESULT([no])
        AC_MSG_CHECKING([if compiler supports $1 intrinsics with $2])
        save_CFLAGS="$CFLAGS"; CFLAGS="$2 $CFLAGS"
        AC_LINK_IFELSE([AC_LANG_PROGRAM($5, $6)],
        [
           AC_MSG_RESULT([yes])
           $3=1
        ],[
           AC_MSG_RESULT([no])
           $3=0
        ])
        CFLAGS="$save_CFLAGS"
     ])
])
