Add Power/PowerPC VMX SIMD support
authorErik Lindahl <erik@kth.se>
Fri, 4 Jul 2014 11:36:13 +0000 (13:36 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Thu, 18 Sep 2014 20:20:36 +0000 (22:20 +0200)
This adds the low-level SIMD implementation
for IBM VMX, which is present on Power 6 and
later (and PowerPC after PPC970). This will
not generate nbnxn kernels yet, so it is not
enabled by default. Unit tests pass on Power8,
where I also had to work around some vec_lvsl()
issues due to the new little-endian PowerPC
architecture. IBM has some quirks in their
implementation of fnmadd, which occasionally
returns negative zero when IEEE754 would expect
positive zero. This should not cause any problems
in normal Gromacs use, and to avoid problems in
SIMD-math I have changed some operations there to
use fmadd, with swapped signs of constants instead.
This might even save a cycle on some platforms.

Change-Id: I71a70b8807d5bfdba18da887adbcfc97ce3c8cc3


No differences found