K-computer specific modifications
authorErik Lindahl <erik@kth.se>
Wed, 30 Jul 2014 13:06:50 +0000 (15:06 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Thu, 4 Sep 2014 04:34:18 +0000 (06:34 +0200)
This commit implements most of the K-computer-
specific changes for Gromacs-5.0. The HPC-ACE
SIMD module has been added since we need the
exponentials for LJPME, and there are also some
fixes to the LJPME nonbonded accelerated group
kernels that prevented them from compiling.
The SIMD unit tests have been modified to avoid
making assumptions about the internal storage
being single or double, since HPC-ACE only
supports double. The toolchain files have
been updated and moved to the platform subdir,
and we now have a separate module to handle
Gromacs-specific flags and settings for K.

Change-Id: I5b832809b5dd52ef4b72f6cd41b1b3da1c036a57

138 files changed:
CMakeLists.txt
cmake/Platform/Toolchain-Fujitsu-Sparc64-mpi.cmake [moved from cmake/Toolchain-Fujitsu-Sparc64-mpi.cmake with 66% similarity]
cmake/Platform/Toolchain-Fujitsu-Sparc64.cmake [new file with mode: 0644]
cmake/TestFujitsuSparc64.c [new file with mode: 0644]
cmake/gmxCFlags.cmake
cmake/gmxDetectSimd.cmake
cmake/gmxDetectTargetArchitecture.cmake
cmake/gmxManageFujitsuSparc64.cmake [moved from cmake/Toolchain-Fujitsu-Sparc64.cmake with 68% similarity]
cmake/gmxTestSimd.cmake
docs/install-guide/install-guide.md
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/kernelutil_sparc64_hpc_ace_double.h
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/make_nb_kernel_sparc64_hpc_ace_double.py [changed mode: 0755->0644]
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwCSTab_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwCSTab_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwLJ_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwLJ_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwLJ_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCSTab_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwCSTab_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwCSTab_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwCSTab_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwCSTab_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwLJ_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwLJ_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwLJ_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwLJ_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecCoul_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJSh_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJSh_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJSh_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJSh_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwLJSh_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSh_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwLJSw_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwLJSw_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwLJSw_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwLJSw_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwLJSw_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEwSw_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwCSTab_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwCSTab_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwCSTab_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwCSTab_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJEw_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJEw_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJEw_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJEw_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJEw_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJ_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJ_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJ_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwLJ_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecEw_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecGB_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecGB_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecGB_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwLJEwSh_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwLJEw_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwLJSh_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwLJSw_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecNone_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwCSTab_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwCSTab_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwCSTab_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwCSTab_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSh_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSh_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSh_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSh_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSh_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSw_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSw_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSw_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSw_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwLJSw_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRFCut_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwCSTab_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwCSTab_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwCSTab_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwCSTab_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwCSTab_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwLJ_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwLJ_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwLJ_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwLJ_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwLJ_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwNone_GeomP1P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwNone_GeomW3P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwNone_GeomW3W3_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwNone_GeomW4P1_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_ElecRF_VdwNone_GeomW4W4_sparc64_hpc_ace_double.c
src/gromacs/gmxlib/nonbonded/nb_kernel_sparc64_hpc_ace_double/nb_kernel_template_sparc64_hpc_ace_double.pre
src/gromacs/simd/impl_sparc64_hpc_ace/impl_sparc64_hpc_ace.h [new file with mode: 0644]
src/gromacs/simd/simd.h
src/gromacs/simd/tests/simd.cpp
src/gromacs/simd/tests/simd4.cpp
src/gromacs/simd/tests/simd4_floatingpoint.cpp
src/gromacs/simd/tests/simd_floatingpoint.cpp

index 75e272fd5652314926e877f236c5efed09e4b304..e87e6464acda800c6a2868b9524754245ddd7568 100644 (file)
@@ -191,6 +191,16 @@ if(CMAKE_HOST_UNIX)
             "Hostname of the machine where the cache was generated.")
 endif()
 
+########################################################################
+# Detect architecture before setting options so we can alter defaults
+########################################################################
+# Detect the architecture the compiler is targetting, detect
+# SIMD instructions possibilities on that hardware, suggest SIMD instruction set
+# to use if none is specified, and populate the cache option for CPU
+# SIMD.
+include(gmxDetectTargetArchitecture)
+gmx_detect_target_architecture()
+
 ########################################################################
 # User input options                                                   #
 ########################################################################
@@ -198,7 +208,16 @@ include(gmxOptionUtilities)
 
 set(CMAKE_PREFIX_PATH "" CACHE STRING "Extra locations to search for external libraries and tools (give directory without lib, bin, or include)")
 
-option(GMX_DOUBLE "Use double precision (much slower, use only if you really need it)" OFF)
+if(GMX_TARGET_FUJITSU_SPARC64)
+    # Fujitsu only has SIMD in double precision, so this will be faster
+    set(GMX_DOUBLE_DEFAULT ON)
+else()
+    set(GMX_DOUBLE_DEFAULT OFF)
+endif()
+option(GMX_DOUBLE "Use double precision (much slower, use only if you really need it)" ${GMX_DOUBLE_DEFAULT})
+option(GMX_RELAXED_DOUBLE_PRECISION "Accept single precision 1/sqrt(x) when using Fujitsu HPC-ACE SIMD" OFF)
+mark_as_advanced(GMX_RELAXED_DOUBLE_PRECISION)
+
 option(GMX_MPI    "Build a parallel (message-passing) version of GROMACS" OFF)
 option(GMX_THREAD_MPI  "Build a thread-MPI-based multithreaded version of GROMACS (not compatible with MPI)" ON)
 gmx_dependent_option(
@@ -226,13 +245,6 @@ endif()
 set(REQUIRED_CUDA_COMPUTE_CAPABILITY 2.0)
 include(gmxManageGPU)
 
-# Detect the architecture the compiler is targetting, detect
-# SIMD instructions possibilities on that hardware, suggest SIMD instruction set
-# to use if none is specified, and populate the cache option for CPU
-# SIMD.
-include(gmxDetectTargetArchitecture)
-gmx_detect_target_architecture()
-
 if(GMX_CPU_ACCELERATION)
     # Stay compatible with old Jenkins command line options for specific SIMD acceleration
     set(GMX_SIMD "${GMX_CPU_ACCELERATION}" CACHE STRING "SIMD instruction set level and compiler optimization" FORCE)
@@ -373,6 +385,9 @@ set(PKG_CFLAGS "")
 if(GMX_DOUBLE)
     add_definitions(-DGMX_DOUBLE)
     set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_DOUBLE")
+    if(GMX_RELAXED_DOUBLE_PRECISION)
+        add_definitions(-DGMX_RELAXED_DOUBLE_PRECISION)
+    endif()
 endif()
 if(GMX_SOFTWARE_INVSQRT)
   set(PKG_CFLAGS "${PKG_CFLAGS} -DGMX_SOFTWARE_INVSQRT")
@@ -439,6 +454,10 @@ if(${CMAKE_SYSTEM_NAME} MATCHES BlueGene)
     include(gmxManageBlueGene)
 endif()
 
+if(GMX_TARGET_FUJITSU_SPARC64)
+    include(gmxManageFujitsuSparc64)
+endif()
+
 ########################################################################
 #Process MPI settings
 ########################################################################
similarity index 66%
rename from cmake/Toolchain-Fujitsu-Sparc64-mpi.cmake
rename to cmake/Platform/Toolchain-Fujitsu-Sparc64-mpi.cmake
index 2b0a180b563b9b015876d2443527d7c6659aa44a..d457cc5d005e004307bd87bc50cf7787d10a71e4 100644 (file)
 # the research papers on the package. Check out http://www.gromacs.org.
 
 # the name of the target operating system
-set(CMAKE_SYSTEM_NAME Linux CACHE STRING "Cross-compiling for Fujitsu Sparc64")
+set(CMAKE_SYSTEM_NAME Linux CACHE STRING "Cross-compiling for Fujitsu Sparc64, with MPI")
+set(CMAKE_SYSTEM_PROCESSOR "s64fx")
 
 set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
 
 # set the compiler
 set(CMAKE_C_COMPILER mpifccpx)
 set(CMAKE_CXX_COMPILER mpiFCCpx)
-set(CMAKE_C_COMPILER_ID "Fujitsu" CACHE STRING "Prevent CMake from adding GNU-specific linker flags (-rdynamic)" FORCE)
 
-set(CMAKE_C_FLAGS "-Kopenmp -Kfast,reduction,swp,simd=2,uxsimd -x500 -Xg -DGMX_RELAXED_DOUBLE_PRECISION -w" CACHE STRING "Fujitsu Sparc64 C Flags" FORCE)
-set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Fujitsu Sparc64 C++ Flags" FORCE)
-set(GMX_SOFTWARE_INVSQRT OFF CACHE BOOL "Use native 1.0/sqrt(x) on Fujitsu Sparc64" FORCE)
+# Prevent CMake from adding GNU-specific linker flags (-rdynamic)
+set(CMAKE_C_COMPILER_ID "Fujitsu" CACHE STRING "Fujitsu C cross-compiler" FORCE)
+set(CMAKE_CXX_COMPILER_ID "Fujitsu" CACHE STRING "Fujitsu C++ cross-compiler" FORCE)
 
-set(GMX_THREAD_MPI OFF CACHE BOOL "Use real MPI instead" FORCE)
-set(GMX_MPI ON CACHE BOOL "Use MPI library" FORCE)
-set(GMX_DOUBLE ON CACHE BOOL "Use double by default on Fujitsu Sparc64 (due to HPC-ACE)" FORCE)
-set(GMX_GPU OFF CACHE BOOL "Cannot do GPU acceleration on Fujitsu Sparc64" FORCE)
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Use static linking by default on Fujitsu Sparc64" FORCE)
-
-set(GMX_SIMD "Sparc64_HPC_ACE" CACHE STRING "Enabling Sparc64 HPC-ACE SIMD when using Fujitsu Sparc64 toolchain")
+# FindOpenMP.cmake does not try -Kopenmp,but the package will try specific
+# flags based on the compier ID.
+set(OMP_FLAG_Fujitsu "-Kopenmp")
diff --git a/cmake/Platform/Toolchain-Fujitsu-Sparc64.cmake b/cmake/Platform/Toolchain-Fujitsu-Sparc64.cmake
new file mode 100644 (file)
index 0000000..be5f138
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
+# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+# and including many others, as listed in the AUTHORS file in the
+# top-level source directory and at http://www.gromacs.org.
+#
+# GROMACS is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1
+# of the License, or (at your option) any later version.
+#
+# GROMACS is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with GROMACS; if not, see
+# http://www.gnu.org/licenses, or write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+#
+# If you want to redistribute modifications to GROMACS, please
+# consider that scientific software is very special. Version
+# control is crucial - bugs must be traceable. We will be happy to
+# consider code for inclusion in the official distribution, but
+# derived work must not be called official GROMACS. Details are found
+# in the README & COPYING files - if they are missing, get the
+# official version at http://www.gromacs.org.
+#
+# To help us fund GROMACS development, we humbly ask that you cite
+# the research papers on the package. Check out http://www.gromacs.org.
+
+# the name of the target operating system
+set(CMAKE_SYSTEM_NAME Linux CACHE STRING "Cross-compiling for Fujitsu Sparc64")
+# Set the identification to the same value we would get on the nodes (uname -m)
+set(CMAKE_SYSTEM_PROCESSOR "s64fx")
+
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
+
+# set the compiler
+set(CMAKE_C_COMPILER fccpx)
+set(CMAKE_CXX_COMPILER FCCpx)
+
+# Prevent CMake from adding GNU-specific linker flags (-rdynamic)
+# A patch has been submitted to make CMake itself handle this in the future
+set(CMAKE_C_COMPILER_ID "Fujitsu" CACHE STRING "Fujitsu C cross-compiler" FORCE)
+set(CMAKE_CXX_COMPILER_ID "Fujitsu" CACHE STRING "Fujitsu C++ cross-compiler" FORCE)
+
+# FindOpenMP.cmake does not try -Kopenmp,but the package will try specific
+# flags based on the compier ID.
+set(OMP_FLAG_Fujitsu "-Kopenmp")
diff --git a/cmake/TestFujitsuSparc64.c b/cmake/TestFujitsuSparc64.c
new file mode 100644 (file)
index 0000000..0740688
--- /dev/null
@@ -0,0 +1,8 @@
+int main()
+{
+#if defined (__FUJITSU) && ( defined(__sparc) || defined(__sparcv9) ) && ( defined(__LP64__) || defined(__arch64) )
+    return 0;
+#else
+#error This compiler is not targetting Fujitsu Sparc64
+#endif
+}
index 65a394de2c229cefafc5bfec49b8cdf0ade4bb98..6ad1bf83f5fdeb794f27695345afa17c44e82152 100644 (file)
@@ -249,6 +249,19 @@ MACRO(gmx_c_flags)
         GMX_TEST_CXXFLAG(CXXFLAGS_WARN_EXTRA "-Wextra -Wno-missing-field-initializers -Wpointer-arith" GMXC_CXXFLAGS)
     endif()
 
+    # Fujitsu compilers on PrimeHPC/Sparc64
+    if(${CMAKE_C_COMPILER_ID} MATCHES Fujitsu OR
+       (${CMAKE_C_COMPILER_ID} MATCHES unknown AND ${CMAKE_C_COMPILER} MATCHES ^fcc))
+        GMX_TEST_CFLAG(CFLAG_GNUCOMPAT "-Xg -w" GMXC_CFLAGS)
+        GMX_TEST_CFLAG(CFLAG_OPT "-Kfast,reduction,swp,simd=2,uxsimd,fsimple -x100" GMXC_CFLAGS)
+    endif()
+
+    if(${CMAKE_CXX_COMPILER_ID} MATCHES Fujitsu OR
+       (${CMAKE_CXX_COMPILER_ID} MATCHES unknown AND ${CMAKE_CXX_COMPILER} MATCHES ^FCC))
+        GMX_TEST_CXXFLAG(CXXFLAG_GNUCOMPAT "-Xg -w" GMXC_CXXFLAGS)
+        GMX_TEST_CXXFLAG(CXXFLAG_OPT "-Kfast,reduction,swp,simd=2,uxsimd,fsimple -x100" GMXC_CXXFLAGS)
+    endif()
+
     # now actually set the flags:
     if (NOT GMX_SKIP_DEFAULT_CFLAGS)
         gmx_set_cmake_compiler_flags()
index a2ac397c4c919699fd7e10df08ed42ff91ece3a7..199c4c3cde9469c0c3ee3872a4f256bef265344b 100644 (file)
@@ -94,6 +94,10 @@ function(gmx_detect_simd _suggested_simd)
     if(NOT DEFINED GMX_SIMD)
         if(GMX_TARGET_BGQ)
             set(${_suggested_simd} "IBM_QPX")
+        elseif(GMX_TARGET_FUJITSU_SPARC64)
+            # HPC-ACE is always present. In the future we
+            # should add detection for HPC-ACE2 here.
+            set(${_suggested_simd} "Sparc64_HPC_ACE")
         elseif(GMX_TARGET_X86)
             gmx_suggest_x86_simd(${_suggested_simd})
         else()
index 2bd98720903e27ee21bab591d4c2dac81cd6edaa..2a188c77b30f443474151d6b9196ea556f8ca1b4 100644 (file)
@@ -53,4 +53,8 @@ function(gmx_detect_target_architecture)
         try_compile(GMX_TARGET_MIC ${CMAKE_BINARY_DIR}
             "${CMAKE_SOURCE_DIR}/cmake/TestMIC.c")
     endif()
+    if (NOT DEFINED GMX_TARGET_FUJITSU_SPARC64)
+        try_compile(GMX_TARGET_FUJITSU_SPARC64 ${CMAKE_BINARY_DIR}
+            "${CMAKE_SOURCE_DIR}/cmake/TestFujitsuSparc64.c")
+    endif()
 endfunction()
similarity index 68%
rename from cmake/Toolchain-Fujitsu-Sparc64.cmake
rename to cmake/gmxManageFujitsuSparc64.cmake
index 3f301eed64a30e015fc73cb9d0476ad4373b2066..e0b705ceee1aa686b97c5d5a4a0ac88d281bf7b6 100644 (file)
 # To help us fund GROMACS development, we humbly ask that you cite
 # the research papers on the package. Check out http://www.gromacs.org.
 
-# the name of the target operating system
-set(CMAKE_SYSTEM_NAME Linux CACHE STRING "Cross-compiling for Fujitsu Sparc64")
+# Managing configuration for Fujitsu PrimeHPC Sparc64
+# For now this is mainly used for K computer.
+message(STATUS "Configuring for Fujitsu Sparc64")
 
-set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
-
-# set the compiler
-set(CMAKE_C_COMPILER fccpx)
-set(CMAKE_CXX_COMPILER FCCpx)
-set(CMAKE_C_COMPILER_ID "Fujitsu" CACHE STRING "Prevent CMake from adding GNU-specific linker flags (-rdynamic)" FORCE)
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "Use static linking by default on Fujitsu Sparc64" FORCE)
+set(GMX_GPU OFF CACHE BOOL "Cannot do GPU acceleration on Fujitsu Sparc64" FORCE)
 
-set(CMAKE_C_FLAGS "-Kopenmp -Kfast,reduction,swp,simd=2,uxsimd -x500 -Xg -DGMX_RELAXED_DOUBLE_PRECISION -w" CACHE STRING "Fujitsu Sparc64 C Flags" FORCE)
-set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Fujitsu Sparc64 C++ Flags" FORCE)
 set(GMX_SOFTWARE_INVSQRT OFF CACHE BOOL "Use native 1.0/sqrt(x) on Fujitsu Sparc64" FORCE)
+set(GMX_X11 OFF CACHE BOOL "X11 not compatible with Fujitsu Sparc64 cross-compile, disabled." FORCE)
 
-# By default CMake will use thread-mpi
-set(GMX_DOUBLE ON CACHE BOOL "Use double by default on Fujitsu Sparc64 (due to HPC-ACE)" FORCE)
-set(GMX_GPU OFF CACHE BOOL "Cannot do GPU acceleration on Fujitsu Sparc64" FORCE)
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Use static linking by default on Fujitsu Sparc64" FORCE)
-
-set(GMX_SIMD "Sparc64_HPC_ACE" CACHE STRING "Enabling Sparc64 HPC-ACE SIMD when using Fujitsu Sparc64 toolchain")
index 49ea326b12b88a1a24e4ab648f75712aac0b8e20..f58429a23916aa1436d67214d77ed2b96b99b480 100644 (file)
@@ -265,6 +265,8 @@ elseif(${GMX_SIMD} STREQUAL "IBM_QPX")
 
 elseif(${GMX_SIMD} STREQUAL "SPARC64_HPC_ACE")
 
+    # Note that GMX_RELAXED_DOUBLE_PRECISION is enabled by default in the top-level CMakeLists.txt
+
     set(GMX_SIMD_SPARC64_HPC_ACE 1)
     set(SIMD_STATUS_MESSAGE "Enabling Sparc64 HPC-ACE SIMD instructions")
 
index 6ffabb444454104b62e890aa4864340d2ebd0bdc..67185db2cf2768ae17549ea0490c8c4c2535377c 100644 (file)
@@ -924,7 +924,7 @@ The recommended configuration is to use
 
     cmake .. -DCMAKE_C_COMPILER=mpicc \
              -DCMAKE_CXX_COMPILER=mpicxx \
-             -DCMAKE_TOOLCHAIN_FILE=Platform/BlueGeneQ-static-XL-CXX \
+             -DCMAKE_TOOLCHAIN_FILE=Platform/BlueGeneQ-static-XL-CXX.cmake \
              -DCMAKE_PREFIX_PATH=/your/fftw/installation/prefix \
              -DGMX_MPI=ON \
              -DGMX_BUILD_MDRUN_ONLY=ON
@@ -957,8 +957,25 @@ add it. The default plain C kernels will work.
 
 This is the architecture of the K computer, which uses Fujitsu
 `Sparc64VIIIfx` chips. On this platform, GROMACS @PROJECT_VERSION@ has
-accelerated group kernels, no accelerated Verlet kernels, and a custom
-build toolchain.
+accelerated group kernels using the HPC-ACE instructions, no
+accelerated Verlet kernels, and a custom build toolchain. Since this
+particular chip only does double precision SIMD, the default setup
+is to build Gromacs in double. Since most users only need single, we have added
+an option GMX_RELAXED_DOUBLE_PRECISION to accept single precision square root
+accuracy in the group kernels; unless you know that you really need 15 digits
+of accuracy in each individual force, we strongly recommend you use this. Note
+that all summation and other operations are still done in double.
+
+The recommended configuration is to use
+
+    cmake .. -DCMAKE_TOOLCHAIN_FILE=Toolchain-Fujitsu-Sparc64-mpi.cmake \
+             -DCMAKE_PREFIX_PATH=/your/fftw/installation/prefix \
+             -DCMAKE_INSTALL_PREFIX=/where/gromacs/should/be/installed \
+             -DGMX_MPI=ON \
+             -DGMX_BUILD_MDRUN_ONLY=ON \
+             -DGMX_RELAXED_DOUBLE_PRECISION=ON
+    make
+    make install
 
 ### Intel Xeon Phi ###
 
index 6f01d2dfef650b9e613aa8d19f21250fc6c6c978..923f4bb9fda9ced070ee7c852a9105b6eff67af9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 #ifndef _kernelutil_sparc64_hpc_ace_double_h_
 #define _kernelutil_sparc64_hpc_ace_double_h_
 
+/* Get gmx_simd_exp_d() */
+#include "gromacs/simd/simd.h"
+#include "gromacs/simd/simd_math.h"
+
 /* Fujitsu header borrows the name from SSE2, since some instructions have aliases */
 #include <emmintrin.h>
 
old mode 100755 (executable)
new mode 100644 (file)
index b344ebf..6a56703
@@ -91,7 +91,7 @@ Arch       = 'sparc64_hpc_ace_double'
 # 'cutoff' means the interaction is set to 0.0 outside the cutoff
 #
 
-FileHeader = create_copyright_header('2012,2013')
+FileHeader = create_copyright_header('2012,2013,2014')
 FileHeader += """/*
  * Note: this file was generated by the GROMACS """+Arch+""" kernel generator.
  */
index 00d34f09ac061c5dd21eb9c668d147eb09dbb54d..205f843c31bf0ae72a54d35594c3d0f429ac338f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -297,7 +297,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -629,7 +630,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 4dc7ca56e23ddc107283148c8946e503089b0a20..c9fb58eb310f0b3160de047111a7754cef9658c1 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -437,7 +437,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -1001,7 +1002,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 1cba13a1e5a1bedc6701e8243a25bdacd342ec9e..ea7372eb3a35774a4ed0d51897393d20b5d533c6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 2451c4dc86137f4e471c82edb529b0890413bef1..1800d4f87dc86ab327621b5e4244e3988d509aa3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -483,7 +483,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -1125,7 +1126,8 @@ nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 7c1c5dc2f0f6f4213e830007a5196e33a5ad0fb0..a5d53caee4080ba3d48f04a1caa2d7ce40599e5e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index be6897972dfaab871b7385714b728fc6b7d38ef3..c0d830ba08cd41fbdc3020a0cfdf52108872663f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -279,7 +279,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -573,7 +574,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index a466d6d53195ac4c558632455cb32e0925e3f515..9b6cbc85ca7e1456d10b77739ac9771b1172012e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -419,7 +419,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -945,7 +946,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index e0ff96b8b30985b468bea4555f23bb2d5ee4c003..1bf2bd9377fd4f56de8f5d1037e432245dcbf17f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 6950765c6fb2b4e2d3bce828cd34fa344c0bcec6..fced48c2221e64894ce9c48b9da428a2a4910096 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -449,7 +449,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomW4P1_VF_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -1027,7 +1028,8 @@ nb_kernel_ElecCSTab_VdwLJ_GeomW4P1_F_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index ff37667f723a980427b112eec67dc5c886d90717..81de44cb37063e72186eb3d6bbc33092e876044b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 9d0cc5790f31aedb6786d20581ef111eb08be6cf..45a7a3d6128f45baf38b32421d4ce058ac8cbf0b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 6f6b0a7835215ae4713ec096dbab071524b37bf1..740347dce85b88808e1df285af99907cbc5d120a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 21a78ba8efec605f6703a6220070d65263558f25..4e6dcc9e60346f2d0719d673536e4d1d29445747 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 53e413fafc6343e23841825b5e05a638f94e0979..5656188c48f8151e49657c0236e9c20513cc650b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 9926ffc74dfdede8e3c9c538e2a7a84d89332ef1..e09c491bdffe3812f07224dc9aa77b84ebc08d4c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 2c8eaaea2cc0d9fcd5a6abb000de811acdb923cc..1666f42b73e52f575dc7f3952c944e8e43aba792 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -290,7 +290,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -606,7 +607,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 4cba5e8deaf8458b697fed1ea9f514f708695b00..cc730d2aa31d54d0425c8a8088c55928f824bf36 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -392,7 +392,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -864,7 +865,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index fd7dbd32845a0386af227f6663e15ae047987c39..0e69e225782d06046910e31eaa03fb728741b877 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 141ad6009b87e7705d818367dde836465db329e9..2a71b9706ba2782032ba0f26baf27690b83a09cb 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -426,7 +426,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -952,7 +953,8 @@ nb_kernel_ElecCoul_VdwCSTab_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index cebf8de84dd018228c137f531f939aece10e502f..c94c2b04b96119a0bdc0ae2fff610efbc8bc5f10 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 80d5181732333d8f296e93f174298f4b9d09acbc..50b56ae841a7f3caf9ce931571e57663547aa8d4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -251,7 +251,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* COULOMB ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,rinv00);
@@ -500,7 +501,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* COULOMB ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,rinv00);
index 732a828638a139517c011cce2c82fb01d5fd1231..5a8564f0ee93284cc79835c8559cecc162b1b03b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -353,7 +353,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* COULOMB ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,rinv00);
@@ -758,7 +759,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* COULOMB ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,rinv00);
index 246e0864da661092b86c5461798bb4bc120e3628..dd10c3e3f008d01fa255e305bed9f3e977649825 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index a828feea5cb7344de0475c9a70f90e2cf73d0580..e440c725b9c43bb1954a7da69005808a59babb4c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -387,7 +387,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomW4P1_VF_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -846,7 +847,8 @@ nb_kernel_ElecCoul_VdwLJ_GeomW4P1_F_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index c667a2600a814a6ad9c6644d72dff192c5937cd6..862e419e7e2c2e8f2f7b8c06713903abf442a1a4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 1ae1e08710b62c4151fb60655222a7e0fc3473f3..6d57949df3290065573a6f992797106f127e0245 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index df9aa7b98a9661cef6487b0b45a353b6ebd71c87..803ba0a50789056c86f98884ef31d4d50a3d9e31 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index d2864f91930f6219fff8fe4a1831dafd1f4beef9..56663adae4f3178452529dd85b942312e53407ba 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index ba37dd24b577449dc1fd6c59d90c21abe2af8fde..6478d04887b5328c7d4c0b9e35de820a7491b375 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index a28cb09f372963e15cc0e7d4a2ea6621e8232f48..88707e1bcf1ac06375e1dcd468c648a7ddc9b14e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 23671683df9cca2865e285ca21bd846c5c6a7545..eb524e19a788cd73c4d52adb767175da6f115af0 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -246,11 +246,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -318,9 +318,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -345,11 +347,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -595,11 +597,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -660,9 +662,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -680,11 +684,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 9420865dcd80b0112a5fbf5cc0eb988c56a92f5f..c5582d564e5830396123e36911fa468c0f0175a3 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -280,11 +280,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -476,9 +476,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -503,11 +505,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -901,11 +903,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -1070,9 +1072,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -1090,11 +1094,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 84da2d8ee82b58aecf3a95121cd121b0e228d095..99421c554db16773b4e993fbe2720fee376f9ad5 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -342,11 +342,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3W3_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -885,11 +885,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3W3_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -1651,11 +1651,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3W3_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -2100,11 +2100,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW3W3_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 33a8e260bf06b23b3b176e707ed72347ca9f39a5..b05d570ca4b849320a86edfb83812dccf67ad6c8 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -273,11 +273,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -524,19 +524,21 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -981,11 +983,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -1197,19 +1199,21 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 9ae76e19907cc2a062c569f2663255cf5e6447bb..770162ee605d1327279e65efc7ff210bf5d6cf06 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -342,11 +342,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4W4_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -923,11 +923,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4W4_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -1744,11 +1744,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4W4_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -2230,11 +2230,11 @@ nb_kernel_ElecEwSh_VdwLJEwSh_GeomW4W4_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index d6e6167ef7d333b33bc26e0b265394c1fffa809d..e8bd4876ec592a070f4e824e4569bf78a2b7267a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -300,7 +300,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -613,7 +614,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index 3b8b129aec1b38dd68b14affcaee10cfe1f78040..09cf8d502c2f6adfed5ce5286036940949196543 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -456,7 +456,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -1019,7 +1020,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index 4a60e2eafc2a6d6d3de7f7cccba08fa8e1d9e6b8..47df9cbac56e9bfdc39bcc8157a6b1bf2d4804f2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index dea82ce1fa79d04f8182f80c980fc0fa812cf31d..26a7b50fae9a3ad0a7c0999afc7ef9d219972e9e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -497,7 +497,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomW4P1_VF_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -1132,7 +1133,8 @@ nb_kernel_ElecEwSh_VdwLJSh_GeomW4P1_F_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index 7827030cdbb14eec9772d1c2c6de409812b327e7..17f2a514e5d1208861bbd0d935485e7aa300ecf3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index a84e3c088ad75f02be7ceb8aec8bb460b835727f..4a58ad5a7213d4a65f77dedb3abe32721ac02c7a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 3eb213f323c74fb2633aa17fcd5374eff82450e7..bee9461a4a195793d22efadce43cbbda6cab69fd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 8bc1f8dc2c38024c30583720ab0d2b3b4827df38..cfbe1589ed059e39581ad3352f4889048a3b7763 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 5641b773f88905a58d2869df33fbfd664cf851b7..6690b7fbc56d69930dc1afda7ab70c3d070cd421 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 622f84d722bbdb5c0fddf725a750a097292fe552..a55e623769ad416516ec36de4b1e1f36d14c4988 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 7928b9bca5a0cdb759e2970cb15ccfad38640c47..ab8a4f9523dae756688ad8d4626c44efaebd23dd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -323,7 +323,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -679,7 +680,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index f1b877eec671265baf8c98a5cfde5234a0571eb5..ddccfe10d83404d3706762c26e48f7833a4861c5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -501,7 +501,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -1161,7 +1162,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index b2b55720b8c1695abf50d3700ade3c500edc18d3..5a6cdc0ec6aba320c7e64dd53589f9f2e4f0c9ec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index af1528abbed51b2e2f77a282a107160fa3aedc97..c55d849689d0d1dd7dc1f20746ec6cba1ae603c4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -557,7 +557,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -1313,7 +1314,8 @@ nb_kernel_ElecEwSw_VdwLJSw_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index b8cf45abc6696f7b089f3407ece3b1a2fee42bc2..510daeb28c8c2115f35bcb0ee45d276dc4638690 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index c7671e8e7483920f50ae60a5cd2be625f7664b2e..8c16d5c4832feee4362b38c6acbeeacd0bb72a2b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 8fb0eacbcbe1557222e84c3356bd0b75dc0aa75d..9283d2d6605a2c68300fc79d8bbaded88dd11c7f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 8976491f42ff0010b65d24059554fb2abd2a3cfa..6ad2a8c4e1829f30343d111ac67b6452a5954c17 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index afff5b4837989624fb4837bac22db08151f66e65..84de5c02fa08c15f200a0754968ecf19a35de0b3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 487310bf3c1c5366caad8038ae7250b533b2388d..8870abe114706b53c062b69c48236099c590b5e5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 399679d959d0149e6f76d402c03e5728fe214663..1d38e53cc6f6ef99db740bbd513c05d6640cf9c4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -312,7 +312,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -659,7 +660,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 13dffe64e73e5f2b975be01bcd64dd76b2166637..9f992bf22024028da650ef409ec4940bca4db6a1 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -448,7 +448,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -1007,7 +1008,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 1e5665359c9a48dee0bc2ac10d1fd1ab5afe7b90..b03397a3bde86684384c7d386e555e3fec27603b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index cc0de15329667d038d60f951ba5a77d3a9f1c07c..f8add6c515f46f210f9f5e35077fdf2ce3452717 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -484,7 +484,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -1101,7 +1102,8 @@ nb_kernel_ElecEw_VdwCSTab_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 65afc9e980e907986081f75d321dcec44c9fcbc2..4264fc94a4cc8a8d426a6766a0f646a91a10e56a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 38a7346e1c1423c3431d634bb02ee7208a2a6aad..81821a11666da0606eb309d09fb60cc91e67fc1e 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -235,11 +235,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -295,9 +295,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -322,11 +324,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -552,11 +554,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -608,9 +610,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -628,11 +632,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index c1e9a2b01a65cec97e20f7c6079b05f1a50858d4..38a986a4bf926b361dc7b9c9d172849cf15d78c8 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -269,11 +269,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -433,9 +433,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -460,11 +462,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -818,11 +820,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -960,9 +962,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* EWALD ELECTROSTATICS */
 
@@ -980,11 +984,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 49bf255fd629dd0bccdb05fafd517b797db0b7eb..1d33ef6baa972515741967ab19510a01b8c51da1 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -331,11 +331,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3W3_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -782,11 +782,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3W3_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -1448,11 +1448,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3W3_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -1816,11 +1816,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW3W3_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 193ab174c89c6ba802f5d5582af7d9c490fdf0b8..01312e63524ac4d4cb8a2ad005bef373cf4966ed 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -262,11 +262,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -472,19 +472,21 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -880,11 +882,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -1060,19 +1062,21 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index df41d3cedcbb1deed0917f457d1f6f1be01f37aa..52a678aaa6f67416e3c4b633cc61d6f9806e5c87 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -331,11 +331,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4W4_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -811,11 +811,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4W4_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -1523,11 +1523,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4W4_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -1919,11 +1919,11 @@ nb_kernel_ElecEw_VdwLJEw_GeomW4W4_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 6400d3bf4498b79c1442b569a04b502b78ba8b36..4802d316a99bfad6feba6412578301a2cd1e6ff3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -277,7 +277,8 @@ nb_kernel_ElecEw_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -561,7 +562,8 @@ nb_kernel_ElecEw_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index e94b67dfde0f55a30cac8b25295b8975a28e8eb0..f6819e234c74c17bcd3d98a8529f0856903fd23e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -413,7 +413,8 @@ nb_kernel_ElecEw_VdwLJ_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
@@ -909,7 +910,8 @@ nb_kernel_ElecEw_VdwLJ_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* EWALD ELECTROSTATICS */
 
index cbec966ae2aad0490965bb2bddde2675efa484fd..faf9ce53b222d6fa329eb3e20737ca5efe60d350 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index bbf9e79f20dabbfd8a5bba95e2f7a70ec3c5885b..380a4a454acf4000c46087fdd7dac3ce5d7fc5f2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -445,7 +445,8 @@ nb_kernel_ElecEw_VdwLJ_GeomW4P1_VF_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -995,7 +996,8 @@ nb_kernel_ElecEw_VdwLJ_GeomW4P1_F_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index e5e93e45135a896bc816b989ecd63d2b4da00e42..71460f12888bf5fbe35329d91efd34a755388e97 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 9fc6b9ef25997b0460bdf8125769ae66bdb3cfa9..731c3c43ab4e3d0ff1510140567532b39fe34c2d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 170c4912a3e4da47c5d4005e1045db6216461cc6..71ec483f9c421ed58483b52c41d2008c737c0a71 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 04202a25e6c725b0ea456639aa52ed62264eb800..6b941f48ebb6121c001bf9c117d10ad47fe70081 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 88f340c7db338997399c3e3b2c1292b6e98d7833..30168ae29e314b328ace94aa65fc2361994e4970 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index fe1a845ee2f56443ed0f7f401ace924bfa64f988..64dc2b4aef367440ecc5a3ade14ee3d0ae3ae2c2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index b1ae0df802cf5f7b80c68eed2e2b04e2929d6ed7..d5f3346b02d5b39d7aa49f4e98634a4be213c6ec 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -329,7 +329,8 @@ nb_kernel_ElecGB_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -716,7 +717,8 @@ nb_kernel_ElecGB_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 7ea6451beb70f25097f47cde46d34affcd17c898..2e3e255fbfd7771e457240dd4573a48235663d72 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -300,7 +300,8 @@ nb_kernel_ElecGB_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* GENERALIZED BORN AND COULOMB ELECTROSTATICS */
             isaprod          = _fjsp_mul_v2r8(isai0,isaj0);
@@ -630,7 +631,8 @@ nb_kernel_ElecGB_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* GENERALIZED BORN AND COULOMB ELECTROSTATICS */
             isaprod          = _fjsp_mul_v2r8(isai0,isaj0);
index fde7441ba7a4fb10259805ba77131fdb99b6b79f..22836d5df9dd71cada983fcbab825b2ff0008486 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 589e2115b08d4ff36e32000fd492b78cdc2cab31..6d1d4705f782cf610217f99d1d37b39385f3e00a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -271,7 +271,8 @@ nb_kernel_ElecNone_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -563,7 +564,8 @@ nb_kernel_ElecNone_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 8e1982d5858f99bb1e0302f9826648ca22958453..f7785709002ef68ee331248f39e49fcc3a3f25f2 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -211,11 +211,11 @@ nb_kernel_ElecNone_VdwLJEwSh_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -279,19 +279,21 @@ nb_kernel_ElecNone_VdwLJEwSh_GeomP1P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
             vvdw             = _fjsp_msub_v2r8(_fjsp_nmsub_v2r8(c12_00,_fjsp_mul_v2r8(sh_vdw_invrcut6,sh_vdw_invrcut6),vvdw12),one_twelfth,
                                _fjsp_mul_v2r8(_fjsp_sub_v2r8(vvdw6,_fjsp_madd_v2r8(c6grid_00,sh_lj_ewald,_fjsp_mul_v2r8(c6_00,sh_vdw_invrcut6))),one_sixth));
@@ -505,11 +507,11 @@ nb_kernel_ElecNone_VdwLJEwSh_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -568,19 +570,21 @@ nb_kernel_ElecNone_VdwLJEwSh_GeomP1P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index f797be75e053ed5f67aa9576a3a2f3746895bc75..1b354f3543642d05d0ca5b2568e444c1eba19165 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -201,11 +201,11 @@ nb_kernel_ElecNone_VdwLJEw_GeomP1P1_VF_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -258,19 +258,21 @@ nb_kernel_ElecNone_VdwLJEw_GeomP1P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_00,_fjsp_sub_v2r8(one,poly),c6_00),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_00,_fjsp_sub_v2r8(poly,one),c6_00),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_00,_fjsp_mul_v2r8(rinvsix,rinvsix));
            vvdw             = _fjsp_msub_v2r8(vvdw12,one_twelfth,_fjsp_mul_v2r8(vvdw6,one_sixth));         
             /* fvdw = vvdw12/r - (vvdw6/r + (C6grid * exponent * beta^6)/r) */
@@ -466,11 +468,11 @@ nb_kernel_ElecNone_VdwLJEw_GeomP1P1_F_sparc64_hpc_ace_double
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
@@ -520,19 +522,21 @@ nb_kernel_ElecNone_VdwLJEw_GeomP1P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
-            c6grid_00       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A);
+            c6grid_00       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset0+vdwjidx0A,
+                                                                   vdwgridparam+vdwioffset0+vdwjidx0B);
 
             /* Analytical LJ-PME */
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq00,rinvsq00),rinvsq00);
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq00);
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_00,_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_00,one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
index 33ad9076d0df3f55ac8964d42a3a181448c1715a..e7e5b27696fde1de1b01353f9cade1a44149e837 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -253,7 +253,8 @@ nb_kernel_ElecNone_VdwLJSh_GeomP1P1_VF_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -505,7 +506,8 @@ nb_kernel_ElecNone_VdwLJSh_GeomP1P1_F_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index 3ac3aa6f41e168efbdf861aa82c6b45c0737a7a6..3efb862dacce95249274c51201a5677f998cca62 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -282,7 +282,8 @@ nb_kernel_ElecNone_VdwLJSw_GeomP1P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -576,7 +577,8 @@ nb_kernel_ElecNone_VdwLJSw_GeomP1P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index 6a00329f2caef2fc0147cd1af196c55f0aba38c8..2b3f34e4ae0fd80cc0e8d1cedf30d236a9fcf986 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -232,7 +232,8 @@ nb_kernel_ElecNone_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -457,7 +458,8 @@ nb_kernel_ElecNone_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index b8636617a4417b3f88a9d6a94491d969595071a4..c42edbd9665f75146dcc16e8217f90c9e627f177 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -312,7 +312,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -655,7 +656,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 122da5ad22c52a60c9d09a529408486f820352dd..018952c15612f45b278aeb951ee06e0510566a6e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -434,7 +434,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -969,7 +970,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 8e5b97a429fce1650e090dc4fe36b1be4adf1d68..e4896d9bc135009b6f95ed38fc8f1a0e02faee76 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index dc07f18abd6edc8b3b576864d27d7256b45eb0a3..82381b12a1932088f9ad21f6e4535a70a9f083a0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -464,7 +464,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -1052,7 +1053,8 @@ nb_kernel_ElecRFCut_VdwCSTab_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 40fa48c05f1ae656fc8ceae1e98421c7a0598594..a76f0003dec33e9954d9c90c043366c13d04b6d5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 73ecd6b29f4f7062b60e5def3aaa2c9a86e3f1f7..00e2e4d8bc8dba65720e763bbfd8fffb52bbf481 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -277,7 +277,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -557,7 +558,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index 32cb4034e219fed070fc92bf00527f648cbb469f..7bd46a31596b07ce5a712062cb78270d8174736b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -399,7 +399,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -871,7 +872,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index 371a210e44d45a7b4321ec8e81f6d7f34b58cbaf..c2fa121e3ec831fcae046a50b3e5cf2ed3f76d2b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 01af2e4f5909f4c5f2a167aef560907c2a86f595..b56a73d8e5bebf5e692880e7d3619d1318c89dc5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -442,7 +442,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomW4P1_VF_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -986,7 +987,8 @@ nb_kernel_ElecRFCut_VdwLJSh_GeomW4P1_F_sparc64_hpc_ace_double
             {
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index 1dc29413c1be342c5bed7c034ffae204f11f9ab5..5dffdcd13ac6185349852e38d13c5b865fc22264 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index c04e26bdf08b386e01bbb13d01a9b44755ab1d4a..eb84028588f27f8a1d6cd51d61b8e8e0511473b0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -302,7 +302,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -620,7 +621,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index a36d621e42b23112fcd454bd48b31bac65ac807f..2219811420c0d2681105a5af483f950418ae1838 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -424,7 +424,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -934,7 +935,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index a55055b2e0b6ca2a113515454a4068da544379e2..c42d44669928e187f2211dec21a5b37f09a18ce5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index a7f11642ca4521c5d3e986088dd4cdd04ec6c7dc..8f0dbea164f04e8f90b58fa08cbd27b69621cdc4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -469,7 +469,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -1053,7 +1054,8 @@ nb_kernel_ElecRFCut_VdwLJSw_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index da712725eba131d7843c1ddd064ebddb313e5fd5..59230a7af8a2e44094ea9f4909ba2bb939270d92 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index dd62ae711d191b79a898235532253b45065ad27d..d59adf4b9ad1c1daebc582606c34ab4066a5dde3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index ebaef401ecbbebf6bd66386a293530719f0574d0..96e951e47f15a11acf0132c937ea8c68be06b38b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 910fa470ccfc791340959ade0546c06a4e83386b..67b60b5fee28fddaafceb6d30e457e08fbd699f0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index ba622b53f40233442c05dbece875b83d3a60c42b..305551f2d29328bbe991fe2f4513db33504259f9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 19eaf690418ca7e71cc7e92ef49e4f33a7da7a15..94ecbfd7f8c9af893ebbf726ce581af48c28e9c7 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index da9aa52937a481d62660cfd17bb222e9c60f093b..15436673e224561f701bfc097ccadada862fccc9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -293,7 +293,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -611,7 +612,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 8dddb72bef9cfc7ca85a2dd79818b5f4831a2f41..b0f5066e984ffbfab2521ebe76019478e81e605b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -395,7 +395,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -867,7 +868,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index f7386e856888630fa0d28ef007c5e52251a5eaeb..5af27df8a8b4017f1e880e1dd09bcb8f85dd7967 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 2a06234511be4000f78118dcdd9a5a6583f84228..7b2c2b7abda89e422392d818fb453f205f8afc0a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -429,7 +429,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomW4P1_VF_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
@@ -955,7 +956,8 @@ nb_kernel_ElecRF_VdwCSTab_GeomW4P1_F_sparc64_hpc_ace_double
             r00              = _fjsp_mul_v2r8(rsq00,rinv00);
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* Calculate table index by multiplying r with table scale and truncate to integer */
             rt               = _fjsp_mul_v2r8(r00,vftabscale);
index 00f24652c679346b7586a8441eb177f208314d57..9757139ce522fb4c576d06092a5c4c061a9cb93d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index e7832fd6c97210cc94d46b2f01bd4e03b7b7e472..4588517f7d0dc7aaeed3805a2a5e933d0a711f25 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -254,7 +254,8 @@ nb_kernel_ElecRF_VdwLJ_GeomP1P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -505,7 +506,8 @@ nb_kernel_ElecRF_VdwLJ_GeomP1P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index b5f82d68d42e3a81aabea27a692c848b561be2d1..295f5be73f17ed0dfa9baee618ceffe2efc0233f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -356,7 +356,8 @@ nb_kernel_ElecRF_VdwLJ_GeomW3P1_VF_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             velec            = _fjsp_mul_v2r8(qq00,_fjsp_sub_v2r8(_fjsp_madd_v2r8(krf,rsq00,rinv00),crf));
@@ -761,7 +762,8 @@ nb_kernel_ElecRF_VdwLJ_GeomW3P1_F_sparc64_hpc_ace_double
 
             /* Compute parameters for interactions between i and j atoms */
             qq00             = _fjsp_mul_v2r8(iq0,jq0);
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* REACTION-FIELD ELECTROSTATICS */
             felec            = _fjsp_mul_v2r8(qq00,_fjsp_msub_v2r8(rinv00,rinvsq00,krf2));
index eb9df87ff2e4a62131adb7ba3b89d73d4b9cf0be..5dcaa421857a77e86d6e23039620bfab1526bc92 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index bb39a71201cc49c769398fe3a90cbefbf89c4da3..93df321d6cc843d5cfe69cbeaf41fd5721534915 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -390,7 +390,8 @@ nb_kernel_ElecRF_VdwLJ_GeomW4P1_VF_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
@@ -849,7 +850,8 @@ nb_kernel_ElecRF_VdwLJ_GeomW4P1_F_sparc64_hpc_ace_double
              **************************/
 
             /* Compute parameters for interactions between i and j atoms */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,&c6_00,&c12_00);
+            gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset0+vdwjidx0A,
+                                         vdwparam+vdwioffset0+vdwjidx0B,&c6_00,&c12_00);
 
             /* LENNARD-JONES DISPERSION/REPULSION */
 
index 3ce9fd075684478e7766c623f8662ffaa615f498..7156eb300074aa75f9ff771917cdea843ad3833d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index e89254047d14b9c08127c9cb26268cd16ef5d08f..65dcd12145646eca4b2d4305cfae01a8250d4e1d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index f9b4a30906d85a62bd43ac25004ab6021bc2f67a..4f7ed2cf0619545485ce589112e24be8cc58132d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index e9c4000d75f4728234c20102ef0ab3188dd3d59d..36f9117e94a3d46425c6ea9d59adb16d0730b514 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 9db02abebbd004828e4b89719569ceccbab2d117..f7ddba907c04fd8e44b3231b411cd67f1fa9c8a2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index 07071938ebf7c87c1d2edd2ecfddcde1538fbfac..3b3c9c17db24322786bd80e339138b0d6ef87bd0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2012,2013, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -43,7 +43,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
index df45424c023b9ad2d0fa685d5655bcc5741ed678..422e6a20a346ff3c9ec95497698487d9b2b08b7f 100644 (file)
@@ -44,7 +44,7 @@
 
 #include "../nb_kernel.h"
 #include "types/simple.h"
-#include "vec.h"
+#include "gromacs/legacyheaders/vec.h"
 #include "nrnb.h"
 
 #include "kernelutil_sparc64_hpc_ace_double.h"
@@ -543,20 +543,12 @@ void
             /*             #define INNERFLOPS INNERFLOPS+1 */
             /*         #endif */
             /*         #if 'vdw' in INTERACTION_FLAGS[I][J] */
-            /*             #if ROUND == 'Loop' */
             gmx_fjsp_load_2pair_swizzle_v2r8(vdwparam+vdwioffset{I}+vdwjidx{J}A,
                                          vdwparam+vdwioffset{I}+vdwjidx{J}B,&c6_{I}{J},&c12_{I}{J});
 
-           /*                 #if 'LJEwald' in KERNEL_VDW */
+           /*             #if 'LJEwald' in KERNEL_VDW */
             c6grid_{I}{J}       = gmx_fjsp_load_2real_swizzle_v2r8(vdwgridparam+vdwioffset{I}+vdwjidx{J}A,
                                                                    vdwgridparam+vdwioffset{I}+vdwjidx{J}B);
-            /*                 #endif */
-            /*             #else */
-            gmx_fjsp_load_1pair_swizzle_v2r8(vdwparam+vdwioffset{I}+vdwjidx{J}A,&c6_{I}{J},&c12_{I}{J});
-
-            /*                 #if 'LJEwald' in KERNEL_VDW */
-            c6grid_{I}{J}       = gmx_fjsp_load_1real_swizzle_v2r8(vdwgridparam+vdwioffset{I}+vdwjidx{J}A);
-            /*                 #endif */
             /*             #endif */
             /*         #endif */
             /*     #endif */
@@ -858,13 +850,13 @@ void
             rinvsix          = _fjsp_mul_v2r8(_fjsp_mul_v2r8(rinvsq{I}{J},rinvsq{I}{J}),rinvsq{I}{J});
             ewcljrsq         = _fjsp_mul_v2r8(ewclj2,rsq{I}{J});
             ewclj6           = _fjsp_mul_v2r8(ewclj2,_fjsp_mul_v2r8(ewclj2,ewclj2));
-            exponent         = gmx_simd_exp_d(-ewcljrsq);
+            exponent         = gmx_simd_exp_d(ewcljrsq);
             /* poly = exp(-(beta*r)^2) * (1 + (beta*r)^2 + (beta*r)^4 /2) */
            poly             = _fjsp_mul_v2r8(exponent,_fjsp_madd_v2r8(_fjsp_mul_v2r8(ewcljrsq,ewcljrsq),one_half,_fjsp_sub_v2r8(one,ewcljrsq)));
             /*                 #define INNERFLOPS INNERFLOPS+9 */
             /*             #if 'Potential' in KERNEL_VF or KERNEL_MOD_VDW=='PotentialSwitch' */
             /* vvdw6 = [C6 - C6grid * (1-poly)]/r6 */
-            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(-c6grid_{I}{J},_fjsp_sub_v2r8(one,poly),c6_{I}{J}),rinvsix);
+            vvdw6            = _fjsp_mul_v2r8(_fjsp_madd_v2r8(c6grid_{I}{J},_fjsp_sub_v2r8(poly,one),c6_{I}{J}),rinvsix);
             vvdw12           = _fjsp_mul_v2r8(c12_{I}{J},_fjsp_mul_v2r8(rinvsix,rinvsix));
             /*                 #define INNERFLOPS INNERFLOPS+5 */
             /*                 #if KERNEL_MOD_VDW=='PotentialShift' */
@@ -883,7 +875,7 @@ void
             /*                  #endif */
             /*              #elif KERNEL_VF=='Force' */
             /* f6A = 6 * C6grid * (1 - poly) */
-            f6A              = _fjsp_mul_v2r8(c6grid_{I}{J},_fjsp_msub_v2r8(one,poly));
+            f6A              = _fjsp_mul_v2r8(c6grid_{I}{J},_fjsp_sub_v2r8(one,poly));
             /* f6B = C6grid * exponent * beta^6 */
             f6B              = _fjsp_mul_v2r8(_fjsp_mul_v2r8(c6grid_{I}{J},one_sixth),_fjsp_mul_v2r8(exponent,ewclj6));
             /* fvdw = 12*C12/r13 - ((6*C6 - f6A)/r6 + f6B)/r */
diff --git a/src/gromacs/simd/impl_sparc64_hpc_ace/impl_sparc64_hpc_ace.h b/src/gromacs/simd/impl_sparc64_hpc_ace/impl_sparc64_hpc_ace.h
new file mode 100644 (file)
index 0000000..d4a4905
--- /dev/null
@@ -0,0 +1,432 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2014, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+
+#ifndef GMX_SIMD_IMPL_SPARC64_HPC_ACE_H
+#define GMX_SIMD_IMPL_SPARC64_HPC_ACE_H
+
+#include <math.h>
+/* Fujitsu header borrows the name from SSE2, since some instructions have aliases */
+#include <emmintrin.h>
+
+
+/* Sparc64 HPC-ACE SIMD instruction wrappers
+ *
+ * Please see documentation in gromacs/simd/simd.h for defines.
+ */
+
+/* Capability definitions for Sparc64 HPC-ACE */
+/* HPC-ACE is actually double-only on the register level, but we also implement
+ * a single-precision interface where we only offer single-precision accuracy
+ * in math functions - this can save quite a few cycles.
+ */
+#define GMX_SIMD_HAVE_FLOAT
+#define GMX_SIMD_HAVE_DOUBLE
+#define GMX_SIMD_HAVE_HARDWARE
+#undef  GMX_SIMD_HAVE_LOADU
+#undef  GMX_SIMD_HAVE_STOREU
+#define GMX_SIMD_HAVE_LOGICAL
+#define GMX_SIMD_HAVE_FMA
+#undef  GMX_SIMD_HAVE_FRACTION
+#define GMX_SIMD_HAVE_FINT32
+#define GMX_SIMD_HAVE_FINT32_EXTRACT
+#define GMX_SIMD_HAVE_FINT32_LOGICAL
+#undef  GMX_SIMD_HAVE_FINT32_ARITHMETICS
+#define GMX_SIMD_HAVE_DINT32
+#define GMX_SIMD_HAVE_DINT32_EXTRACT
+#define GMX_SIMD_HAVE_DINT32_LOGICAL
+#undef  GMX_SIMD_HAVE_DINT32_ARITHMETICS
+#undef  GMX_SIMD4_HAVE_FLOAT
+#undef  GMX_SIMD4_HAVE_DOUBLE
+
+/* Implementation details */
+#define GMX_SIMD_FLOAT_WIDTH         2
+#define GMX_SIMD_DOUBLE_WIDTH        2
+#define GMX_SIMD_FINT32_WIDTH        2
+#define GMX_SIMD_DINT32_WIDTH        2
+#define GMX_SIMD_RSQRT_BITS         10
+#define GMX_SIMD_RCP_BITS            9
+
+/* HPC-ACE is a bit strange; some instructions like
+ * shifts only work on _integer_ versions of SIMD
+ * registers, but there are no intrinsics to load
+ * or convert, or even to cast. The only way to use
+ * them is to declare unions with the SIMD integer
+ * type. However, this will lead to extra load ops,
+ * and the normal real-to-int and int-to-real
+ * conversions work purely on the v2r8 fp regs.
+ * Since our most common usage is to convert and
+ * then extract the result for table lookups, we
+ * define the gmx_simd_fint32_t datatype to use
+ * the v2r8 rather than v2i8 SIMD type.
+ */
+
+/****************************************************
+ *      SINGLE PRECISION SIMD IMPLEMENTATION        *
+ ****************************************************/
+#define gmx_simd_float_t          _fjsp_v2r8
+#define gmx_simd_load_f           gmx_simd_load_f_sparc64_hpc_ace
+#define gmx_simd_load1_f(m)       _fjsp_set_v2r8((*m), (*m))
+#define gmx_simd_set1_f(a)        _fjsp_set_v2r8(a, a)
+#define gmx_simd_store_f          gmx_simd_store_f_sparc64_hpc_ace
+#define gmx_simd_loadu_f          gmx_simd_load_f
+/* No unaligned store of gmx_simd_float_t */
+#define gmx_simd_setzero_f        _fjsp_setzero_v2r8
+#define gmx_simd_add_f            _fjsp_add_v2r8
+#define gmx_simd_sub_f            _fjsp_sub_v2r8
+#define gmx_simd_mul_f            _fjsp_mul_v2r8
+#define gmx_simd_fmadd_f(a, b, c)   _fjsp_madd_v2r8(a, b, c)
+#define gmx_simd_fmsub_f(a, b, c)   _fjsp_msub_v2r8(a, b, c)
+#define gmx_simd_fnmadd_f(a, b, c)  _fjsp_nmsub_v2r8(a, b, c)
+#define gmx_simd_fnmsub_f(a, b, c)  _fjsp_nmadd_v2r8(a, b, c)
+#define gmx_simd_and_f            _fjsp_and_v2r8
+#define gmx_simd_andnot_f         _fjsp_andnot1_v2r8
+#define gmx_simd_or_f             _fjsp_or_v2r8
+#define gmx_simd_xor_f            _fjsp_xor_v2r8
+#define gmx_simd_rsqrt_f          _fjsp_rsqrta_v2r8
+#define gmx_simd_rcp_f            _fjsp_rcpa_v2r8
+#define gmx_simd_fabs_f(x)        _fjsp_abs_v2r8(x)
+#define gmx_simd_fneg_f(x)        _fjsp_neg_v2r8(x)
+#define gmx_simd_max_f            _fjsp_max_v2r8
+#define gmx_simd_min_f            _fjsp_min_v2r8
+#define gmx_simd_round_f(x)       gmx_simd_round_d(x)
+#define gmx_simd_trunc_f(x)       gmx_simd_trunc_d(x)
+#define gmx_simd_fraction_f(x)    gmx_simd_sub_f(x, gmx_simd_trunc_f(x))
+#define gmx_simd_get_exponent_f   gmx_simd_get_exponent_d_sparc64_hpc_ace
+#define gmx_simd_get_mantissa_f   gmx_simd_get_mantissa_d_sparc64_hpc_ace
+#define gmx_simd_set_exponent_f   gmx_simd_set_exponent_d_sparc64_hpc_ace
+/* integer datatype corresponding to float: gmx_simd_fint32_t */
+#define gmx_simd_fint32_t         _fjsp_v2r8
+#define gmx_simd_load_fi(m)       gmx_simd_load_di_sparc64_hpc_ace(m)
+#define gmx_simd_set1_fi(i)       gmx_simd_set1_di_sparc64_hpc_ace(i)
+#define gmx_simd_store_fi(m, x)   gmx_simd_store_di_sparc64_hpc_ace(m, x)
+#define gmx_simd_loadu_fi         gmx_simd_load_fi
+/* No unaligned store of gmx_simd_fint32_t */
+#define gmx_simd_setzero_fi       _fjsp_setzero_v2r8
+#define gmx_simd_cvt_f2i          gmx_simd_cvt_d2i
+#define gmx_simd_cvtt_f2i         _fjsp_dtox_v2r8
+#define gmx_simd_cvt_i2f          _fjsp_xtod_v2r8
+#define gmx_simd_extract_fi      gmx_simd_extract_di_sparc64_hpc_ace
+/* Integer logical ops on gmx_simd_fint32_t */
+/* Shifts are horrible since they require memory re-loads. */
+#define gmx_simd_slli_fi          gmx_simd_slli_di_sparc64_hpc_ace
+#define gmx_simd_srli_fi          gmx_simd_srli_di_sparc64_hpc_ace
+#define gmx_simd_and_fi           _fjsp_and_v2r8
+#define gmx_simd_andnot_fi(a, b)   _fjsp_andnot1_v2r8(a, b)
+#define gmx_simd_or_fi            _fjsp_or_v2r8
+#define gmx_simd_xor_fi           _fjsp_xor_v2r8
+/* No integer arithmetic ops on gmx_simd_fint32_t */
+/* Boolean & comparison operations on gmx_simd_float_t */
+#define gmx_simd_fbool_t          _fjsp_v2r8
+#define gmx_simd_cmpeq_f          _fjsp_cmpeq_v2r8
+#define gmx_simd_cmplt_f          _fjsp_cmplt_v2r8
+#define gmx_simd_cmple_f          _fjsp_cmple_v2r8
+#define gmx_simd_and_fb           _fjsp_and_v2r8
+#define gmx_simd_or_fb            _fjsp_or_v2r8
+#define gmx_simd_anytrue_fb       gmx_simd_anytrue_d_sparc64_hpc_ace
+#define gmx_simd_blendzero_f      _fjsp_and_v2r8
+#define gmx_simd_blendnotzero_f(a, sel) _fjsp_andnot1_v2r8(sel, a)
+#define gmx_simd_blendv_f(a, b, s) _fjsp_selmov_v2r8(b, a, s)
+#define gmx_simd_reduce_f(a)       gmx_simd_reduce_d_sparc64_hpc_ace(a)
+/* No boolean & comparison operations on gmx_simd_fint32_t */
+/* No conversions between different booleans */
+
+/****************************************************
+ *      DOUBLE PRECISION SIMD IMPLEMENTATION        *
+ ****************************************************/
+#define gmx_simd_double_t          _fjsp_v2r8
+#define gmx_simd_load_d            _fjsp_load_v2r8
+#define gmx_simd_load1_d(m)        _fjsp_set_v2r8((*m), (*m))
+#define gmx_simd_set1_d(a)         _fjsp_set_v2r8(a, a)
+#define gmx_simd_store_d           _fjsp_store_v2r8
+#define gmx_simd_loadu_d           gmx_simd_load_d
+/* No unaligned store of gmx_simd_double_t */
+#define gmx_simd_setzero_d         _fjsp_setzero_v2r8
+#define gmx_simd_add_d             _fjsp_add_v2r8
+#define gmx_simd_sub_d             _fjsp_sub_v2r8
+#define gmx_simd_mul_d             _fjsp_mul_v2r8
+#define gmx_simd_fmadd_d(a, b, c)   _fjsp_madd_v2r8(a, b, c)
+#define gmx_simd_fmsub_d(a, b, c)   _fjsp_msub_v2r8(a, b, c)
+#define gmx_simd_fnmadd_d(a, b, c)  _fjsp_nmsub_v2r8(a, b, c)
+#define gmx_simd_fnmsub_d(a, b, c)  _fjsp_nmadd_v2r8(a, b, c)
+#define gmx_simd_and_d             _fjsp_and_v2r8
+#define gmx_simd_andnot_d          _fjsp_andnot1_v2r8
+#define gmx_simd_or_d              _fjsp_or_v2r8
+#define gmx_simd_xor_d             _fjsp_xor_v2r8
+#define gmx_simd_rsqrt_d(x)        _fjsp_rsqrta_v2r8(x)
+#define gmx_simd_rcp_d(x)          _fjsp_rcpa_v2r8(x)
+#define gmx_simd_fabs_d(x)         _fjsp_abs_v2r8(x)
+#define gmx_simd_fneg_d(x)         _fjsp_neg_v2r8(x)
+#define gmx_simd_max_d             _fjsp_max_v2r8
+#define gmx_simd_min_d             _fjsp_min_v2r8
+#define gmx_simd_round_d(x)        gmx_simd_cvt_i2d(gmx_simd_cvt_d2i(x))
+#define gmx_simd_trunc_d(x)        gmx_simd_cvt_i2d(gmx_simd_cvtt_d2i(x))
+#define gmx_simd_fraction_d(x)     gmx_simd_sub_d(x, gmx_simd_trunc_d(x))
+#define gmx_simd_get_exponent_d    gmx_simd_get_exponent_d_sparc64_hpc_ace
+#define gmx_simd_get_mantissa_d    gmx_simd_get_mantissa_d_sparc64_hpc_ace
+#define gmx_simd_set_exponent_d    gmx_simd_set_exponent_d_sparc64_hpc_ace
+/* integer datatype corresponding to double: gmx_simd_dint32_t */
+#define gmx_simd_dint32_t          _fjsp_v2r8
+#define gmx_simd_load_di(m)        gmx_simd_load_di_sparc64_hpc_ace(m)
+#define gmx_simd_set1_di(i)        gmx_simd_set1_di_sparc64_hpc_ace(i)
+#define gmx_simd_store_di(m, x)    gmx_simd_store_di_sparc64_hpc_ace(m, x)
+#define gmx_simd_loadu_di          gmx_simd_load_di
+/* No unaligned store of gmx_simd_dint32_t */
+#define gmx_simd_setzero_di        _fjsp_setzero_v2r8
+#define gmx_simd_cvt_d2i           gmx_simd_cvt_d2i_sparc64_hpc_ace
+#define gmx_simd_cvtt_d2i          _fjsp_dtox_v2r8
+#define gmx_simd_cvt_i2d           _fjsp_xtod_v2r8
+#define gmx_simd_extract_di        gmx_simd_extract_di_sparc64_hpc_ace
+/* Integer logical ops on gmx_simd_dint32_t */
+#define gmx_simd_slli_di           gmx_simd_slli_di_sparc64_hpc_ace
+#define gmx_simd_srli_di           gmx_simd_srli_di_sparc64_hpc_ace
+#define gmx_simd_and_di            _fjsp_and_v2r8
+#define gmx_simd_andnot_di         _fjsp_andnot1_v2r8
+#define gmx_simd_or_di             _fjsp_or_v2r8
+#define gmx_simd_xor_di            _fjsp_xor_v2r8
+/* Integer arithmetic ops on integer datatype corresponding to double */
+/* Boolean & comparison operations on gmx_simd_double_t */
+#define gmx_simd_dbool_t           _fjsp_v2r8
+#define gmx_simd_cmpeq_d           _fjsp_cmpeq_v2r8
+#define gmx_simd_cmplt_d           _fjsp_cmplt_v2r8
+#define gmx_simd_cmple_d           _fjsp_cmple_v2r8
+#define gmx_simd_and_db            _fjsp_and_v2r8
+#define gmx_simd_or_db             _fjsp_or_v2r8
+#define gmx_simd_anytrue_db         gmx_simd_anytrue_d_sparc64_hpc_ace
+#define gmx_simd_blendzero_d        _fjsp_and_v2r8
+#define gmx_simd_blendnotzero_d(a, sel)  _fjsp_andnot1_v2r8(sel, a)
+#define gmx_simd_blendv_d(a, b, sel) _fjsp_selmov_v2r8(b, a, sel)
+#define gmx_simd_reduce_d(a)        gmx_simd_reduce_d_sparc64_hpc_ace(a)
+
+/* No boolean & comparison operations on gmx_simd_dint32_t */
+/* Float/double conversion */
+#define gmx_simd_cvt_f2d(f)         (f)
+#define gmx_simd_cvt_d2f(d)         (d)
+
+
+/****************************************************
+ * SINGLE PRECISION IMPLEMENTATION HELPER FUNCTIONS *
+ ****************************************************/
+static gmx_inline gmx_simd_float_t
+gmx_simd_load_f_sparc64_hpc_ace(const float *m)
+{
+    /* We are not allowed to cast single-to-double registers, but we can
+     * masquerade the memory location as a variable of type _fjsp_v2r4.
+     */
+    const _fjsp_v2r4 *p = (const _fjsp_v2r4 *)m;
+    _fjsp_v2r4        simd;
+
+    simd = *p;
+    return _fjsp_stod_v2r8(simd);
+}
+
+static gmx_inline void
+gmx_simd_store_f_sparc64_hpc_ace(float *m, gmx_simd_float_t x)
+{
+    /* We are not allowed to cast single-to-double registers, but we can
+     * masquerade the memory location as a variable of type _fjsp_v2r4.
+     */
+    _fjsp_v2r4 *p = (_fjsp_v2r4 *)m;
+    *p = _fjsp_dtos_v2r4(x);
+}
+
+static gmx_inline gmx_simd_dint32_t
+gmx_simd_load_di_sparc64_hpc_ace(const int *m)
+{
+    union
+    {
+        _fjsp_v2r8       simd;
+        long long int    i[2];
+    }
+    conv;
+
+    conv.i[0] = m[0];
+    conv.i[1] = m[1];
+
+    return _fjsp_load_v2r8( (double *) &(conv.simd) );
+}
+
+static gmx_inline void
+gmx_simd_store_di_sparc64_hpc_ace(int *m, gmx_simd_dint32_t x)
+{
+    union
+    {
+        _fjsp_v2r8       simd;
+        long long int    i[2];
+    }
+    conv;
+
+    _fjsp_store_v2r8( (double *) &(conv.simd), x );
+
+    m[0] = conv.i[0];
+    m[1] = conv.i[1];
+}
+
+static gmx_inline gmx_simd_dint32_t
+gmx_simd_set1_di_sparc64_hpc_ace(int i)
+{
+    union
+    {
+        _fjsp_v2r8       simd;
+        long long int    i[2];
+    }
+    conv;
+
+    conv.i[0] = i;
+    conv.i[1] = i;
+
+    return _fjsp_load_v2r8( (double *) &(conv.simd) );
+}
+
+static gmx_inline int
+gmx_simd_extract_di_sparc64_hpc_ace(gmx_simd_dint32_t x, int i)
+{
+    long long int res;
+    /* This conditional should be optimized away at compile time */
+    if (i == 0)
+    {
+        _fjsp_storel_v2r8((double *)&res, x);
+    }
+    else
+    {
+        _fjsp_storeh_v2r8((double *)&res, x);
+    }
+    return (int)res;
+}
+
+static gmx_inline gmx_simd_dint32_t
+gmx_simd_slli_di_sparc64_hpc_ace(gmx_simd_dint32_t x, int i)
+{
+    _fjsp_v2i8 ix = *((_fjsp_v2i8 *)&x);
+    ix = _fjsp_slli_v2i8(ix, i);
+    x  = *((_fjsp_v2r8 *)&ix);
+    return x;
+}
+
+static gmx_inline gmx_simd_dint32_t
+gmx_simd_srli_di_sparc64_hpc_ace(gmx_simd_dint32_t x, int i)
+{
+    _fjsp_v2i8 ix = *((_fjsp_v2i8 *)&x);
+    ix = _fjsp_srli_v2i8(ix, i);
+    x  = *((_fjsp_v2r8 *)&ix);
+    return x;
+}
+
+static gmx_inline gmx_simd_dint32_t
+gmx_simd_cvt_d2i_sparc64_hpc_ace(gmx_simd_double_t x)
+{
+    _fjsp_v2r8 signbit = _fjsp_set_v2r8(-0.0, -0.0);
+    _fjsp_v2r8 half    = _fjsp_set_v2r8(0.5, 0.5);
+
+    x = _fjsp_add_v2r8(x, _fjsp_or_v2r8(_fjsp_and_v2r8(signbit, x), half));
+    return _fjsp_dtox_v2r8(x);
+}
+
+static gmx_inline int
+gmx_simd_anytrue_d_sparc64_hpc_ace(gmx_simd_dbool_t x)
+{
+    long long int i;
+    x = _fjsp_or_v2r8(x, _fjsp_unpackhi_v2r8(x, x));
+    _fjsp_storel_v2r8((double *)&i, x);
+    return (i != 0LL);
+}
+
+static gmx_inline double
+gmx_simd_reduce_d_sparc64_hpc_ace(gmx_simd_double_t x)
+{
+    double d;
+    x = _fjsp_add_v2r8(x, _fjsp_unpackhi_v2r8(x, x));
+    _fjsp_storel_v2r8(&d, x);
+    return d;
+}
+
+
+static gmx_inline gmx_simd_double_t
+gmx_simd_get_exponent_d_sparc64_hpc_ace(gmx_simd_double_t x)
+{
+    /* HPC-ACE cannot cast _fjsp_v2r8 to _fjsp_v4i4, so to perform shifts we
+     * would need to store and reload. Since we are only operating on two
+     * numbers it is likely more efficient to do the operations directly on
+     * normal registers.
+     */
+    const gmx_int64_t    expmask   = 0x7ff0000000000000LL;
+    const gmx_int64_t    expbias   = 1023LL;
+
+    union
+    {
+        _fjsp_v2r8       simd;
+        long long int    i[2];
+    }
+    conv;
+
+    _fjsp_store_v2r8( (double *) &conv.simd, x);
+    conv.i[0] = ((conv.i[0] & expmask) >> 52) - expbias;
+    conv.i[1] = ((conv.i[1] & expmask) >> 52) - expbias;
+    x         = _fjsp_load_v2r8( (double *) &conv.simd);
+    return _fjsp_xtod_v2r8(x);
+}
+
+static gmx_inline gmx_simd_double_t
+gmx_simd_get_mantissa_d_sparc64_hpc_ace(gmx_simd_double_t x)
+{
+    gmx_int64_t       mantmask[2] = {0x000fffffffffffffLL, 0x000fffffffffffffLL};
+    gmx_simd_double_t one         = _fjsp_set_v2r8(1.0, 1.0);
+
+    x = _fjsp_and_v2r8(x, _fjsp_load_v2r8((double *)mantmask));
+    return _fjsp_or_v2r8(x, one);
+}
+
+static gmx_inline gmx_simd_double_t
+gmx_simd_set_exponent_d_sparc64_hpc_ace(gmx_simd_double_t x)
+{
+    const gmx_int64_t    expbias   = 1023;
+    union
+    {
+        _fjsp_v2r8       simd;
+        long long int    i[2];
+    }
+    conv;
+
+
+    _fjsp_store_v2r8( (double *) &conv.simd, gmx_simd_cvt_d2i_sparc64_hpc_ace(x));
+    conv.i[0] = (conv.i[0] + expbias) << 52;
+    conv.i[1] = (conv.i[1] + expbias) << 52;
+
+    return _fjsp_load_v2r8( (double *) &conv.simd);
+}
+
+
+/* No SIMD4 support, since both single & double are only 2-wide */
+
+#endif /* GMX_SIMD_IMPL_SPARC64_HPC_ACE_H */
index 53a65e984a97cecaf6ffdea03ae8dabe77fc08d7..8ef1c8cac4e563c0cef3c46fc571c1d3b20b7691 100644 (file)
@@ -126,6 +126,8 @@ static gmx_inline double * gmx_simd4_align_d(double *p);
 #    include "gromacs/simd/impl_x86_sse2/impl_x86_sse2.h"
 #elif defined GMX_SIMD_IBM_QPX
 #    include "gromacs/simd/impl_ibm_qpx/impl_ibm_qpx.h"
+#elif defined GMX_SIMD_SPARC64_HPC_ACE
+#    include "gromacs/simd/impl_sparc64_hpc_ace/impl_sparc64_hpc_ace.h"
 #elif (defined GMX_SIMD_REFERENCE) || (defined DOXYGEN)
 /* Plain C SIMD reference implementation, also serves as documentation.
  * For now this code path will also be taken for Sparc64_HPC_ACE since we have
index 74c5dff84ac7bc5ee8533d8cb26a718bc9000552..e3fa9d910684c4075af86fb081d41d96599cb20f 100644 (file)
@@ -80,21 +80,6 @@ const gmx_simd_real_t rSimd_Exp      = setSimdRealFrom3R( 1.40552351710274526239
 const gmx_simd_real_t rSimd_ExpDouble = setSimdRealFrom3R( 6.287393598732017379054414e+176,
                                                            8.794495252903116023030553e-140,
                                                            -3.637060701570496477655022e+202);
-// Magic FP numbers corresponding to specific bit patterns
-const gmx_simd_real_t rSimd_Bits1    = setSimdRealFrom1R(-1.07730874267432137e+236);
-const gmx_simd_real_t rSimd_Bits2    = setSimdRealFrom1R(-9.25596313493178307e+061);
-const gmx_simd_real_t rSimd_Bits3    = setSimdRealFrom1R(-8.57750588235293981e+003);
-const gmx_simd_real_t rSimd_Bits4    = setSimdRealFrom1R( 1.22416778341839096e-250);
-const gmx_simd_real_t rSimd_Bits5    = setSimdRealFrom1R(-1.15711777004554095e+294);
-const gmx_simd_real_t rSimd_Bits6    = setSimdRealFrom1R( 1.53063836115600621e-018);
-#    else
-// Magic FP numbers corresponding to specific bit patterns
-const gmx_simd_real_t rSimd_Bits1    = setSimdRealFrom1R(-5.9654142337e+29);
-const gmx_simd_real_t rSimd_Bits2    = setSimdRealFrom1R(-1.0737417600e+08);
-const gmx_simd_real_t rSimd_Bits3    = setSimdRealFrom1R(-6.0235290527e+00);
-const gmx_simd_real_t rSimd_Bits4    = setSimdRealFrom1R( 1.0788832913e-31);
-const gmx_simd_real_t rSimd_Bits5    = setSimdRealFrom1R(-1.0508719529e+37);
-const gmx_simd_real_t rSimd_Bits6    = setSimdRealFrom1R( 1.1488970369e-02);
 #    endif
 #endif  // GMX_SIMD_HAVE_REAL
 #ifdef GMX_SIMD_HAVE_INT32
index d6dd7ac74c7b7819e9f803e07d1f3fe9bc9c0fca..f8d50ae877da6699cecab53aaa9f5ab2f02a91ad 100644 (file)
@@ -68,20 +68,6 @@ const gmx_simd4_real_t rSimd4_Exp      = setSimd4RealFrom3R( 1.40552351710274526
 const gmx_simd4_real_t  rSimd_ExpDouble = setSimd4RealFrom3R( 6.287393598732017379054414e+176,
                                                               8.794495252903116023030553e-140,
                                                               -3.637060701570496477655022e+202);
-// Magic FP numbers corresponding to specific bit patterns
-const gmx_simd4_real_t rSimd4_Bits1    = setSimd4RealFrom1R(-1.07730874267432137e+236);
-const gmx_simd4_real_t rSimd4_Bits2    = setSimd4RealFrom1R(-9.25596313493178307e+061);
-const gmx_simd4_real_t rSimd4_Bits3    = setSimd4RealFrom1R(-8.57750588235293981e+003);
-const gmx_simd4_real_t rSimd4_Bits4    = setSimd4RealFrom1R( 1.22416778341839096e-250);
-const gmx_simd4_real_t rSimd4_Bits5    = setSimd4RealFrom1R(-1.15711777004554095e+294);
-const gmx_simd4_real_t rSimd4_Bits6    = setSimd4RealFrom1R( 1.53063836115600621e-018);
-#    else
-const gmx_simd4_real_t rSimd4_Bits1    = setSimd4RealFrom1R(-5.9654142337e+29);
-const gmx_simd4_real_t rSimd4_Bits2    = setSimd4RealFrom1R(-1.0737417600e+08);
-const gmx_simd4_real_t rSimd4_Bits3    = setSimd4RealFrom1R(-6.0235290527e+00);
-const gmx_simd4_real_t rSimd4_Bits4    = setSimd4RealFrom1R( 1.0788832913e-31);
-const gmx_simd4_real_t rSimd4_Bits5    = setSimd4RealFrom1R(-1.0508719529e+37);
-const gmx_simd4_real_t rSimd4_Bits6    = setSimd4RealFrom1R( 1.1488970369e-02);
 #    endif
 
 ::std::vector<real>
index 41aa5aa85f324fe7492d6526104b0b02d4b7655b..57bfe856516bb0d03597aa4b5f8c23027f0252af 100644 (file)
@@ -121,25 +121,47 @@ TEST_F(Simd4FloatingpointTest, gmxSimd4FnegR)
 }
 
 #ifdef GMX_SIMD4_HAVE_LOGICAL
+/* 1.3333282470703125 has mantissa 0101010101010101 (followed by zeros)
+ * 1.79998779296875   has mantissa 1100110011001100 (followed by zeros)
+ * 1.26666259765625   has mantissa 0100010001000100 (followed by zeros)
+ * 1.8666534423828125 has mantissa 1101110111011101 (followed by zeros)
+ *
+ * Since all of them have the same exponent (2^0), the exponent will
+ * not change with AND or OR operations.
+ */
 TEST_F(Simd4FloatingpointTest, gmxSimd4AndR)
 {
-    GMX_EXPECT_SIMD4_REAL_EQ(rSimd4_Bits3, gmx_simd4_and_r(rSimd4_Bits1, rSimd4_Bits2)); // Bits1 & Bits2 = Bits3
+    GMX_EXPECT_SIMD4_REAL_EQ(setSimd4RealFrom1R(1.26666259765625),
+                             gmx_simd4_and_r(gmx_simd4_set1_r(1.3333282470703125),
+                                             gmx_simd4_set1_r(1.79998779296875)));
 }
 
-TEST_F(Simd4FloatingpointTest, gmxSimd4AndnotR)
+TEST_F(Simd4FloatingpointTest, gmxSimd4OrR)
 {
-    GMX_EXPECT_SIMD4_REAL_EQ(rSimd4_Bits4, gmx_simd4_andnot_r(rSimd4_Bits1, rSimd4_Bits2)); // (~Bits1) & Bits2 = Bits3
+    GMX_EXPECT_SIMD4_REAL_EQ(setSimd4RealFrom1R(1.8666534423828125),
+                             gmx_simd4_or_r(gmx_simd4_set1_r(1.3333282470703125),
+                                            gmx_simd4_set1_r(1.79998779296875)));
 }
 
-TEST_F(Simd4FloatingpointTest, gmxSimd4OrR)
+TEST_F(Simd4FloatingpointTest, gmxSimd4XorR)
 {
-    GMX_EXPECT_SIMD4_REAL_EQ(rSimd4_Bits5, gmx_simd4_or_r(rSimd4_Bits1, rSimd4_Bits2)); // Bits1 | Bits2 = Bits3
+    /* Test xor by taking xor with a number and its negative. This should result
+     * in only the sign bit being set. We then use this bit change the sign of
+     * different numbers.
+     */
+    gmx_simd4_real_t signbit = gmx_simd4_xor_r(gmx_simd4_set1_r(1.5), gmx_simd4_set1_r(-1.5));
+    GMX_EXPECT_SIMD4_REAL_EQ(setSimd4RealFrom3R(-1, 2, -3), gmx_simd4_xor_r(signbit, setSimd4RealFrom3R(1, -2, 3)));
 }
 
-TEST_F(Simd4FloatingpointTest, gmxSimd4XorR)
+TEST_F(Simd4FloatingpointTest, gmxSimd4AndnotR)
 {
-    GMX_EXPECT_SIMD4_REAL_EQ(rSimd4_Bits6, gmx_simd4_xor_r(rSimd4_Bits1, rSimd4_Bits2)); // Bits1 ^ Bits2 = Bits3
+    /* Use xor (which we already tested, so fix that first if both tests fail)
+     * to extract the sign bit, and then use andnot to take absolute values.
+     */
+    gmx_simd4_real_t signbit = gmx_simd4_xor_r(gmx_simd4_set1_r(1.5), gmx_simd4_set1_r(-1.5));
+    GMX_EXPECT_SIMD4_REAL_EQ(setSimd4RealFrom3R(1, 2, 3), gmx_simd4_andnot_r(signbit, setSimd4RealFrom3R(-1, 2, -3)));
 }
+
 #endif
 
 TEST_F(Simd4FloatingpointTest, gmxSimd4MaxR)
index f0ee108d0fbd8dcc13a0bf0658bff09fe509a147..44bd447305e8dd947d374ce285fc272bbd1f9012 100644 (file)
@@ -128,25 +128,47 @@ TEST_F(SimdFloatingpointTest, gmxSimdFnegR)
 }
 
 #ifdef GMX_SIMD_HAVE_LOGICAL
+/* 1.3333282470703125 has mantissa 0101010101010101 (followed by zeros)
+ * 1.79998779296875   has mantissa 1100110011001100 (followed by zeros)
+ * 1.26666259765625   has mantissa 0100010001000100 (followed by zeros)
+ * 1.8666534423828125 has mantissa 1101110111011101 (followed by zeros)
+ *
+ * Since all of them have the same exponent (2^0), the exponent will
+ * not change with AND or OR operations.
+ */
 TEST_F(SimdFloatingpointTest, gmxSimdAndR)
 {
-    GMX_EXPECT_SIMD_REAL_EQ(rSimd_Bits3, gmx_simd_and_r(rSimd_Bits1, rSimd_Bits2)); // Bits1 & Bits2 = Bits3
+    GMX_EXPECT_SIMD_REAL_EQ(setSimdRealFrom1R(1.26666259765625),
+                            gmx_simd_and_r(gmx_simd_set1_r(1.3333282470703125),
+                                           gmx_simd_set1_r(1.79998779296875)));
 }
 
-TEST_F(SimdFloatingpointTest, gmxSimdAndnotR)
+TEST_F(SimdFloatingpointTest, gmxSimdOrR)
 {
-    GMX_EXPECT_SIMD_REAL_EQ(rSimd_Bits4, gmx_simd_andnot_r(rSimd_Bits1, rSimd_Bits2)); // (~Bits1) & Bits2 = Bits3
+    GMX_EXPECT_SIMD_REAL_EQ(setSimdRealFrom1R(1.8666534423828125),
+                            gmx_simd_or_r(gmx_simd_set1_r(1.3333282470703125),
+                                          gmx_simd_set1_r(1.79998779296875)));
 }
 
-TEST_F(SimdFloatingpointTest, gmxSimdOrR)
+TEST_F(SimdFloatingpointTest, gmxSimdXorR)
 {
-    GMX_EXPECT_SIMD_REAL_EQ(rSimd_Bits5, gmx_simd_or_r(rSimd_Bits1, rSimd_Bits2)); // Bits1 | Bits2 = Bits3
+    /* Test xor by taking xor with a number and its negative. This should result
+     * in only the sign bit being set. We then use this bit change the sign of
+     * different numbers.
+     */
+    gmx_simd_real_t signbit = gmx_simd_xor_r(gmx_simd_set1_r(1.5), gmx_simd_set1_r(-1.5));
+    GMX_EXPECT_SIMD_REAL_EQ(setSimdRealFrom3R(-1, 2, -3), gmx_simd_xor_r(signbit, setSimdRealFrom3R(1, -2, 3)));
 }
 
-TEST_F(SimdFloatingpointTest, gmxSimdXorR)
+TEST_F(SimdFloatingpointTest, gmxSimdAndnotR)
 {
-    GMX_EXPECT_SIMD_REAL_EQ(rSimd_Bits6, gmx_simd_xor_r(rSimd_Bits1, rSimd_Bits2)); // Bits1 ^ Bits2 = Bits3
+    /* Use xor (which we already tested, so fix that first if both tests fail)
+     * to extract the sign bit, and then use andnot to take absolute values.
+     */
+    gmx_simd_real_t signbit = gmx_simd_xor_r(gmx_simd_set1_r(1.5), gmx_simd_set1_r(-1.5));
+    GMX_EXPECT_SIMD_REAL_EQ(setSimdRealFrom3R(1, 2, 3), gmx_simd_andnot_r(signbit, setSimdRealFrom3R(-1, 2, -3)));
 }
+
 #endif
 
 TEST_F(SimdFloatingpointTest, gmxSimdMaxR)