xref: /aosp_15_r20/external/libopus/m4/opus-intrinsics.m4 (revision a58d3d2adb790c104798cd88c8a3aff4fa8b82cc)
1*a58d3d2aSXin Lidnl opus-intrinsics.m4
2*a58d3d2aSXin Lidnl macro for testing for support for compiler intrinsics, either by default or with a compiler flag
3*a58d3d2aSXin Li
4*a58d3d2aSXin Lidnl OPUS_CHECK_INTRINSICS(NAME-OF-INTRINSICS, COMPILER-FLAG-FOR-INTRINSICS, VAR-IF-PRESENT, VAR-IF-DEFAULT, TEST-PROGRAM-HEADER, TEST-PROGRAM-BODY)
5*a58d3d2aSXin LiAC_DEFUN([OPUS_CHECK_INTRINSICS],
6*a58d3d2aSXin Li[
7*a58d3d2aSXin Li   AC_MSG_CHECKING([if compiler supports $1 intrinsics])
8*a58d3d2aSXin Li   AC_LINK_IFELSE(
9*a58d3d2aSXin Li     [AC_LANG_PROGRAM($5, $6)],
10*a58d3d2aSXin Li     [
11*a58d3d2aSXin Li        $3=1
12*a58d3d2aSXin Li        $4=1
13*a58d3d2aSXin Li        AC_MSG_RESULT([yes])
14*a58d3d2aSXin Li      ],[
15*a58d3d2aSXin Li        $4=0
16*a58d3d2aSXin Li        AC_MSG_RESULT([no])
17*a58d3d2aSXin Li        AC_MSG_CHECKING([if compiler supports $1 intrinsics with $2])
18*a58d3d2aSXin Li        save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $2"
19*a58d3d2aSXin Li        AC_LINK_IFELSE([AC_LANG_PROGRAM($5, $6)],
20*a58d3d2aSXin Li        [
21*a58d3d2aSXin Li           AC_MSG_RESULT([yes])
22*a58d3d2aSXin Li           $3=1
23*a58d3d2aSXin Li        ],[
24*a58d3d2aSXin Li           AC_MSG_RESULT([no])
25*a58d3d2aSXin Li           $3=0
26*a58d3d2aSXin Li        ])
27*a58d3d2aSXin Li        CFLAGS="$save_CFLAGS"
28*a58d3d2aSXin Li     ])
29*a58d3d2aSXin Li])
30