gpu_array_bound: always store shift/stride
[ppcg.git] / m4 / ax_check_openmp.m4
blobe0775e02691b16fbf65d6f6c91ac5d5bbf1133e8
1 # Check if $CC supports openmp.
2 AC_DEFUN([AX_CHECK_OPENMP], [
3         AC_SUBST(HAVE_OPENMP)
4         HAVE_OPENMP=no
5         AC_MSG_CHECKING([for OpenMP support by $CC])
6         echo | $CC -x c - -fsyntax-only -fopenmp -Werror >/dev/null 2>/dev/null
7         if test $? -eq 0; then
8                 HAVE_OPENMP=yes
9         fi
10         AC_MSG_RESULT($HAVE_OPENMP)
12         if test $HAVE_OPENMP = yes; then
13                 SAVE_CFLAGS=$CFLAGS
14                 CFLAGS="$CFLAGS -fopenmp"
15                 # Using some version of clang, the value of "m" becomes zero
16                 # after the parallel for loop.
17                 AC_RUN_IFELSE([AC_LANG_PROGRAM([[
18                 #include <stdlib.h>
20                 static void f(int m, double A[m])
21                 {
22                         #pragma omp parallel for
23                         for (int c0 = 0; c0 < m; c0 += 1)
24                                 A[c0] = 0.;
25                         if (m != 100)
26                                 abort();
27                 }
28                 ]],[[
29                 double A[100];
31                 f(100, A);
32                 ]])],[],[
33                         AC_MSG_NOTICE([OpenMP support broken, disabling])
34                         HAVE_OPENMP=no
35                 ],[])
36                 CFLAGS=$SAVE_CFLAGS
37         fi