Mesa (master): pan/bi: Use replace_index in more places
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Mar 5 15:26:21 UTC 2021
Module: Mesa
Branch: master
Commit: 362756ad094f7d53122872d8ee2b6175f180e983
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=362756ad094f7d53122872d8ee2b6175f180e983
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Fri Mar 5 02:18:25 2021 +0000
pan/bi: Use replace_index in more places
Needed to respect abs/neg.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9420>
---
src/panfrost/bifrost/bi_schedule.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/src/panfrost/bifrost/bi_schedule.c b/src/panfrost/bifrost/bi_schedule.c
index 4104d00c47c..edce091f9bb 100644
--- a/src/panfrost/bifrost/bi_schedule.c
+++ b/src/panfrost/bifrost/bi_schedule.c
@@ -968,16 +968,13 @@ bi_rewrite_fau_to_pass(bi_tuple *tuple)
static void
bi_rewrite_zero(bi_instr *ins, bool fma)
{
+ bi_index zero = bi_passthrough(fma ? BIFROST_SRC_STAGE : BIFROST_SRC_FAU_LO);
+
bi_foreach_src(ins, s) {
bi_index src = ins->src[s];
- unsigned swizzle = src.swizzle;
- if (src.type == BI_INDEX_CONSTANT && src.value == 0) {
- assert(!src.abs && !src.neg);
- ins->src[s] = bi_passthrough(
- fma ? BIFROST_SRC_STAGE : BIFROST_SRC_FAU_LO);
- ins->src[s].swizzle = swizzle;
- }
+ if (src.type == BI_INDEX_CONSTANT && src.value == 0)
+ ins->src[s] = bi_replace_index(src, zero);
}
}
@@ -990,7 +987,6 @@ bi_rewrite_constants_to_pass(bi_tuple *tuple, uint64_t constant, bool pcrel)
if (ins->src[s].type != BI_INDEX_CONSTANT) continue;
uint32_t cons = ins->src[s].value;
- unsigned swizzle = ins->src[s].swizzle;
ASSERTED bool lo = (cons == (constant & 0xffffffff));
bool hi = (cons == (constant >> 32ull));
@@ -1009,9 +1005,9 @@ bi_rewrite_constants_to_pass(bi_tuple *tuple, uint64_t constant, bool pcrel)
assert(lo || hi);
- ins->src[s] = bi_passthrough(hi ?
- BIFROST_SRC_FAU_HI : BIFROST_SRC_FAU_LO);
- ins->src[s].swizzle = swizzle;
+ ins->src[s] = bi_replace_index(ins->src[s],
+ bi_passthrough(hi ? BIFROST_SRC_FAU_HI :
+ BIFROST_SRC_FAU_LO));
}
}
More information about the mesa-commit
mailing list