pan/bit: Add swizzles to round tests

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
This commit is contained in:
Alyssa Rosenzweig
2020-05-01 16:13:09 -04:00
parent 35c806e701
commit 041ba62e87
+11 -4
View File
@@ -364,11 +364,18 @@ bit_round_helper(struct panfrost_device *dev, uint32_t *input, unsigned sz, bool
bi_instruction ins = bit_ins(BI_ROUND, 1, nir_type_float, sz);
for (enum bifrost_roundmode mode = 0; mode <= 3; ++mode) {
ins.roundmode = mode;
for (unsigned swizzle = 0; swizzle < (sz == 16 ? 4 : 1); ++swizzle) {
if (sz == 16) {
for (unsigned i = 0; i < 2; ++i)
ins.swizzle[0][i] = ((swizzle >> i) & 1) ? 1 : 0;
}
if (!bit_test_single(dev, &ins, input, FMA, debug)) {
fprintf(stderr, "FAIL: round.%u.%u\n",
sz, mode);
ins.roundmode = mode;
if (!bit_test_single(dev, &ins, input, FMA, debug)) {
fprintf(stderr, "FAIL: round.%u.%u\n",
sz, mode);
}
}
}
}