diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-03-20 18:28:40 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-03-20 18:28:40 +0100 |
commit | d63712163c00abb01ae8a9361968eb9a6581e50d (patch) | |
tree | e2509f3d701a5efdfcd241450f98c0f2811f919a /test | |
parent | da6219b19dd92231cd0afe380ae4880b62bfe88d (diff) |
Add SSE4 min/max for integers
Diffstat (limited to 'test')
-rw-r--r-- | test/packetmath.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/packetmath.cpp b/test/packetmath.cpp index cdc945813..804ae9063 100644 --- a/test/packetmath.cpp +++ b/test/packetmath.cpp @@ -250,6 +250,17 @@ template<typename Scalar> void packetmath_real() data1[internal::random<int>(0, PacketSize)] = 0; CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasLog, std::log, internal::plog); CHECK_CWISE1_IF(internal::packet_traits<Scalar>::HasSqrt, std::sqrt, internal::psqrt); +} + +template<typename Scalar> void packetmath_notcomplex() +{ + using std::abs; + typedef typename internal::packet_traits<Scalar>::type Packet; + const int PacketSize = internal::packet_traits<Scalar>::size; + + EIGEN_ALIGN16 Scalar data1[internal::packet_traits<Scalar>::size*4]; + EIGEN_ALIGN16 Scalar data2[internal::packet_traits<Scalar>::size*4]; + EIGEN_ALIGN16 Scalar ref[internal::packet_traits<Scalar>::size*4]; ref[0] = data1[0]; for (int i=0; i<PacketSize; ++i) @@ -340,6 +351,10 @@ void test_packetmath() CALL_SUBTEST_1( packetmath<std::complex<float> >() ); CALL_SUBTEST_2( packetmath<std::complex<double> >() ); + CALL_SUBTEST_1( packetmath_notcomplex<float>() ); + CALL_SUBTEST_2( packetmath_notcomplex<double>() ); + CALL_SUBTEST_3( packetmath_notcomplex<int>() ); + CALL_SUBTEST_1( packetmath_real<float>() ); CALL_SUBTEST_2( packetmath_real<double>() ); |