Changeset 3568


Ignore:
Timestamp:
Nov 19, 2013, 1:51:24 PM (5 years ago)
Author:
cameron
Message:

Update configure scripts; add SSE4_2 library

Location:
icXML/icXML-devel
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • icXML/icXML-devel/configure

    r2807 r3568  
    1970519705rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    1970619706
     19707save_CXXFLAGS="$CXXFLAGS"
     19708CXXFLAGS="$CXXFLAGS -std=gnu++0x"
     19709{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports ISO C++ 2011 standard" >&5
     19710$as_echo_n "checking whether $CXX supports ISO C++ 2011 standard... " >&6; }
     19711cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     19712/* end confdefs.h.  */
     19713
     19714int
     19715main ()
     19716{
     19717
     19718  ;
     19719  return 0;
     19720}
     19721_ACEOF
     19722if ac_fn_cxx_try_compile "$LINENO"; then :
     19723  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
     19724$as_echo "yes" >&6; }
     19725else
     19726  as_fn_error $? "C++0x support required" "$LINENO" 5
     19727
     19728fi
     19729rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     19730
    1970719731if test "$have_sse2" = "yes"; then
    19708     no_sse2_CXXFLAGS="$CXXFLAGS"
    1970919732
    1971019733    save_CXXFLAGS="$CXXFLAGS"
     19734    no_sse_CXXFLAGS="$CXXFLAGS"
    1971119735    CXXFLAGS="$CXXFLAGS -msse2"
    1971219736        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to add -msse2" >&5
     
    1994519969_ACEOF
    1994619970
     19971                          save_CXXFLAGS="$CXXFLAGS"
    1994719972
    1994819973else
     
    1995019975                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
    1995119976$as_echo "no" >&6; }
    19952                                                   sse2_usable=no
     19977                                                  sse2_usable=no
    1995319978
    1995419979
     
    1995619981fi
    1995719982rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    19958   # Restore original CXXFLAGS if SSE2 is not usable.
    19959   #
    19960   if test "$sse2_usable" = "no"; then
    19961     CXXFLAGS="$no_sse2_CXXFLAGS"
    19962   fi
     19983
     19984    CXXFLAGS="$no_sse_CXXFLAGS -mavx -DUSE_SSE4_2"
     19985
     19986        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports non-destructive SSE form" >&5
     19987$as_echo_n "checking whether the compiler supports non-destructive SSE form... " >&6; }
     19988        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     19989/* end confdefs.h.  */
     19990#include <immintrin.h>
     19991int
     19992main ()
     19993{
     19994    __m256* one=(__m256*)_mm_malloc(4, 32);
     19995                                               __m256* two=(__m256*)_mm_malloc(4, 32);
     19996                                               __m256 xmm1 = _mm256_load_ps((float*)one);
     19997                                               __m256 xmm2 = _mm256_load_ps((float*)two);
     19998                                               __m256 xmm3 = _mm256_or_ps(xmm1, xmm2);
     19999                                               _mm256_store_ps((float*)one, xmm3);
     20000                                               _mm_free(one);
     20001                                               _mm_free(two);
     20002
     20003  ;
     20004  return 0;
     20005}
     20006_ACEOF
     20007if ac_fn_cxx_try_compile "$LINENO"; then :
     20008
     20009                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
     20010$as_echo "yes" >&6; }
     20011                          save_CXXFLAGS="$CXXFLAGS"
     20012
     20013else
     20014
     20015                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
     20016$as_echo "no" >&6; }
     20017                          CXXFLAGS="$save_CXXFLAGS"
     20018
     20019
     20020
     20021fi
     20022rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     20023
     20024    CXXFLAGS="$no_sse_CXXFLAGS -mavx2 -mbmi2 -fabi-version=6 -DUSE_AVX2 -DBLOCK_SIZE=256"
     20025
     20026        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports AVX2 intrinsics" >&5
     20027$as_echo_n "checking whether the compiler supports AVX2 intrinsics... " >&6; }
     20028        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
     20029/* end confdefs.h.  */
     20030#include <immintrin.h>
     20031int
     20032main ()
     20033{
     20034    __m256i* one=(__m256i*)_mm_malloc(4, 32);
     20035                                               __m256i* two=(__m256i*)_mm_malloc(4, 32);
     20036                                               __m256i xmm1 = _mm256_load_si256(one);
     20037                                               __m256i xmm2 = _mm256_load_si256(two);
     20038                                               __m256i xmm3 = _mm256_or_si256(xmm1, xmm2);
     20039                                               _mm256_store_si256(one, xmm3);
     20040                                               _mm_free(one);
     20041                                               _mm_free(two);
     20042
     20043  ;
     20044  return 0;
     20045}
     20046_ACEOF
     20047if ac_fn_cxx_try_compile "$LINENO"; then :
     20048
     20049                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
     20050$as_echo "yes" >&6; }
     20051
     20052else
     20053
     20054                                                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
     20055$as_echo "no" >&6; }
     20056                          CXXFLAGS="$save_CXXFLAGS"
     20057
     20058
     20059
     20060fi
     20061rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     20062fi
     20063
     20064# Raise a compile error if SSE2 is not usable.
     20065#
     20066if test "$sse2_usable" = "no"; then
     20067    as_fn_error $? "SSE2 support required" "$LINENO" 5
    1996320068fi
    1996420069
  • icXML/icXML-devel/configure.ac

    r2729 r3568  
    315315                 )
    316316
     317save_CXXFLAGS="$CXXFLAGS"
     318CXXFLAGS="$CXXFLAGS -std=gnu++0x"
     319AC_MSG_CHECKING([whether $CXX supports ISO C++ 2011 standard])
     320AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[]], [[]])],
     321                    [AC_MSG_RESULT([yes])],
     322                    [AC_MSG_ERROR([C++0x support required])]
     323                                 )
     324
    317325if test "$have_sse2" = "yes"; then
    318     no_sse2_CXXFLAGS="$CXXFLAGS"
    319326
    320327    save_CXXFLAGS="$CXXFLAGS"
     328    no_sse_CXXFLAGS="$CXXFLAGS"
    321329    CXXFLAGS="$CXXFLAGS -msse2"
    322330        AC_MSG_CHECKING([whether we need to add -msse2])
     
    423431                                                  sse2_usable=yes
    424432                                                  AC_DEFINE_UNQUOTED([XERCES_HAVE_SSE2_INTRINSIC], 1, [Define to have SSE2 instruction used at runtime])
     433                          save_CXXFLAGS="$CXXFLAGS"
    425434                                                ],
    426435                                                [
    427436                                                  AC_MSG_RESULT([no])
    428                                                   sse2_usable=no
     437                                                  sse2_usable=no
    429438                                                ]
    430439
    431440                                         )
    432   # Restore original CXXFLAGS if SSE2 is not usable.
    433   #
    434   if test "$sse2_usable" = "no"; then
    435     CXXFLAGS="$no_sse2_CXXFLAGS"
    436   fi
     441   
     442    CXXFLAGS="$no_sse_CXXFLAGS -mavx -DUSE_SSE4_2"
     443
     444        AC_MSG_CHECKING([whether the compiler supports non-destructive SSE form])
     445        AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <immintrin.h>]],
     446                                                                                 [[    __m256* one=(__m256*)_mm_malloc(4, 32);
     447                                               __m256* two=(__m256*)_mm_malloc(4, 32);
     448                                               __m256 xmm1 = _mm256_load_ps((float*)one);
     449                                               __m256 xmm2 = _mm256_load_ps((float*)two);
     450                                               __m256 xmm3 = _mm256_or_ps(xmm1, xmm2);
     451                                               _mm256_store_ps((float*)one, xmm3);
     452                                               _mm_free(one);
     453                                               _mm_free(two);
     454                                                                                 ]])],
     455                                                [
     456                                                  AC_MSG_RESULT([yes])
     457                          save_CXXFLAGS="$CXXFLAGS"                                               
     458                                                ],
     459                                                [
     460                                                  AC_MSG_RESULT([no])
     461                          CXXFLAGS="$save_CXXFLAGS"
     462                                                ]
     463
     464                                         )
     465
     466    CXXFLAGS="$no_sse_CXXFLAGS -mavx2 -mbmi2 -fabi-version=6 -DUSE_AVX2 -DBLOCK_SIZE=256"
     467
     468        AC_MSG_CHECKING([whether the compiler supports AVX2 intrinsics])
     469        AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <immintrin.h>]],
     470                                                                                 [[    __m256i* one=(__m256i*)_mm_malloc(4, 32);
     471                                               __m256i* two=(__m256i*)_mm_malloc(4, 32);
     472                                               __m256i xmm1 = _mm256_load_si256(one);
     473                                               __m256i xmm2 = _mm256_load_si256(two);
     474                                               __m256i xmm3 = _mm256_or_si256(xmm1, xmm2);
     475                                               _mm256_store_si256(one, xmm3);
     476                                               _mm_free(one);
     477                                               _mm_free(two);
     478                                                                                 ]])],
     479                                                [
     480                                                  AC_MSG_RESULT([yes])                                           
     481                                                ],
     482                                                [
     483                                                  AC_MSG_RESULT([no])
     484                          CXXFLAGS="$save_CXXFLAGS"
     485                                                ]
     486
     487                                         )
     488fi
     489
     490# Raise a compile error if SSE2 is not usable.
     491#
     492if test "$sse2_usable" = "no"; then
     493    AC_MSG_ERROR([SSE2 support required])
    437494fi
    438495
Note: See TracChangeset for help on using the changeset viewer.