pan/bi: Allow @rNULL with tied operands
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 17 Feb 2021 19:45:44 +0000 (14:45 -0500)
committerMarge Bot <eric+marge@anholt.net>
Thu, 18 Feb 2021 21:48:22 +0000 (21:48 +0000)
Will enable DCE of atomics.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9105>

src/panfrost/bifrost/bi_pack.c

index b43e5a8..d9f28fc 100644 (file)
@@ -330,9 +330,10 @@ bi_pack_tuple(bi_clause *clause, bi_tuple *tuple, bi_tuple *prev, bool first_tup
         if (tuple->add) {
                 bi_instr *add = tuple->add;
 
-                bool sr_write = bi_opcode_props[add->op].sr_write;
+                bool sr_write = bi_opcode_props[add->op].sr_write &&
+                        !bi_is_null(add->dest[0]);
 
-                if (sr_read) {
+                if (sr_read && !bi_is_null(add->src[0])) {
                         assert(add->src[0].type == BI_INDEX_REGISTER);
                         clause->staging_register = add->src[0].value;