extend testing of ploaddup

This commit is contained in:
Gael Guennebaud 2011-02-24 00:22:10 +03:00
parent 23aae0d63e
commit 4bfe38eda2

View File

@ -173,7 +173,7 @@ template<typename Scalar> void packetmath()
CHECK_CWISE1(internal::negate, internal::pnegate); CHECK_CWISE1(internal::negate, internal::pnegate);
CHECK_CWISE1(internal::conj, internal::pconj); CHECK_CWISE1(internal::conj, internal::pconj);
for(int offset=0;offset<3) for(int offset=0;offset<3;++offset)
{ {
for (int i=0; i<PacketSize; ++i) for (int i=0; i<PacketSize; ++i)
ref[i] = data1[offset]; ref[i] = data1[offset];
@ -184,12 +184,15 @@ template<typename Scalar> void packetmath()
VERIFY(internal::isApprox(data1[0], internal::pfirst(internal::pload<Packet>(data1))) && "internal::pfirst"); VERIFY(internal::isApprox(data1[0], internal::pfirst(internal::pload<Packet>(data1))) && "internal::pfirst");
if(PacketSize>1) if(PacketSize>1)
{
for(int offset=0;offset<4;++offset)
{ {
for(int i=0;i<PacketSize/2;++i) for(int i=0;i<PacketSize/2;++i)
ref[2*i+0] = ref[2*i+1] = data1[i]; ref[2*i+0] = ref[2*i+1] = data1[offset+i];
internal::pstore(data2,internal::ploaddup<Packet>(data1)); internal::pstore(data2,internal::ploaddup<Packet>(data1+offset));
VERIFY(areApprox(ref, data2, PacketSize) && "ploaddup"); VERIFY(areApprox(ref, data2, PacketSize) && "ploaddup");
} }
}
ref[0] = 0; ref[0] = 0;
for (int i=0; i<PacketSize; ++i) for (int i=0; i<PacketSize; ++i)