Merge release-4-6 into master
authorRoland Schulz <roland@utk.edu>
Mon, 12 Nov 2012 23:45:33 +0000 (18:45 -0500)
committerRoland Schulz <roland@utk.edu>
Mon, 12 Nov 2012 23:45:33 +0000 (18:45 -0500)
Conflicts:
CMakeLists.txt

Change-Id: I42951043675af21763778a3022403166f8cc70e0

1  2 
CMakeLists.txt
src/config.h.cmakein
src/gromacs/legacyheaders/gmx_math_x86_avx_128_fma_single.h
src/gromacs/mdlib/nbnxn_atomdata.c

diff --cc CMakeLists.txt
index 356f6ce19f70816f61e40e399730c66f4fb2c943,3262247f85a43222e0daf343eff51f45a241b3b7..46a2e31c6dfbbf8231e3855fa8707f7177165110
@@@ -777,14 -779,30 +777,28 @@@ elseif(${GMX_ACCELERATION} STREQUAL "AV
          message(WARNING "No C AVX flag found. Consider a newer compiler, or disable AVX for much lower performance.")
      endif (NOT GNU_AVX_CFLAG AND NOT MSVC_AVX_CFLAG)
  
 -    if (CMAKE_CXX_COMPILER_LOADED)
 -        GMX_TEST_CXXFLAG(GNU_AVX_CXXFLAG "-mavx" GROMACS_CXX_FLAGS)
 -        if (NOT GNU_AVX_CXXFLAG)
 -            GMX_TEST_CXXFLAG(MSVC_AVX_CXXFLAG "/arch:AVX" GROMACS_CXX_FLAGS)
 -        endif (NOT GNU_AVX_CXXFLAG)
 -        if (NOT GNU_AVX_CXXFLAG AND NOT MSVC_AVX_CXXFLAG)
 -            message(WARNING "No C++ AVX flag found. Consider a newer compiler, or disable AVX for much lower performance.")
 -        endif (NOT GNU_AVX_CXXFLAG AND NOT MSVC_AVX_CXXFLAG)
 -    endif()
 +    GMX_TEST_CXXFLAG(GNU_AVX_CXXFLAG "-mavx" GROMACS_CXX_FLAGS)
 +    if (NOT GNU_AVX_CXXFLAG)
 +       GMX_TEST_CXXFLAG(MSVC_AVX_CXXFLAG "/arch:AVX" GROMACS_CXX_FLAGS)
 +    endif (NOT GNU_AVX_CXXFLAG)
 +    if (NOT GNU_AVX_CXXFLAG AND NOT MSVC_AVX_CXXFLAG)
 +       message(WARNING "No C++ AVX flag found. Consider a newer compiler, or disable AVX for much lower performance.")
 +    endif (NOT GNU_AVX_CXXFLAG AND NOT MSVC_AVX_CXXFLAG)
  
+     # Set the FMA4 flags (MSVC doesn't require any)
+     if(${GMX_ACCELERATION} STREQUAL "AVX_128_FMA" AND NOT MSVC)
+         GMX_TEST_CFLAG(GNU_FMA_CFLAG "-mfma4" GROMACS_C_FLAGS)
+         if (NOT GNU_FMA_CFLAG)
+             message(WARNING "No C FMA4 flag found. Consider a newer compiler, or disable AVX_128_FMA for much lower performance.")
+         endif(NOT GNU_FMA_CFLAG)
+         if (CMAKE_CXX_COMPILER_LOADED)
+             GMX_TEST_CXXFLAG(GNU_FMA_CXXFLAG "-mfma4" GROMACS_CXX_FLAGS)
+             if (NOT GNU_FMA_CXXFLAG)
+                 message(WARNING "No C++ FMA flag found. Consider a newer compiler, or disable AVX_128_FMA for much lower performance.")
+             endif (NOT GNU_FMA_CXXFLAG)
+         endif()
+     endif()
      # Only test the header after we have tried to add the flag for AVX support
      check_include_file(immintrin.h  HAVE_IMMINTRIN_H ${GROMACS_C_FLAGS})
  
Simple merge
Simple merge