ptranpose test for non-square kernels added

(cherry picked from commit 8877f8d9b2631301ba070d645cdc3fc9b9f764f5)
This commit is contained in:
Jakub Lichman 2021-05-19 08:26:45 +00:00 committed by Rasmus Munk Larsen
parent 77c66e368c
commit 0bd9e9bc45

View File

@ -548,6 +548,25 @@ void packetmath() {
}
}
const int m_size = PacketSize < 4 ? 1 : 4;
internal::PacketBlock<Packet, m_size> kernel2;
for (int i = 0; i < m_size; ++i) {
kernel2.packet[i] = internal::pload<Packet>(data1 + i * PacketSize);
}
ptranspose(kernel2);
int data_counter = 0;
for (int i = 0; i < PacketSize; ++i) {
for (int j = 0; j < m_size; ++j) {
data2[data_counter++] = data1[j*PacketSize + i];
}
}
for (int i = 0; i < m_size; ++i) {
internal::pstore(data3, kernel2.packet[i]);
for (int j = 0; j < PacketSize; ++j) {
VERIFY(test::isApproxAbs(data3[j], data2[i*PacketSize + j], refvalue) && "ptranspose");
}
}
if (PacketTraits::HasBlend) {
Packet thenPacket = internal::pload<Packet>(data1);
Packet elsePacket = internal::pload<Packet>(data2);