pan/mdg: Factor out unit check
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 12 Jun 2020 21:08:19 +0000 (17:08 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 17 Jun 2020 12:57:34 +0000 (12:57 +0000)
We'd like to do something a bit more complicated.

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

src/panfrost/midgard/midgard_schedule.c

index 9dee152c5e49c0f157245ecf037c173cfae0eb43..5a12d11045e7b4043e0486faaa0f59a091278163 100644 (file)
@@ -508,6 +508,15 @@ mir_pipeline_count(midgard_instruction *ins)
         return DIV_ROUND_UP(bytecount, 16);
 }
 
+static unsigned
+mir_has_unit(midgard_instruction *ins, unsigned unit)
+{
+        if (alu_opcode_props[ins->alu.op].props & unit)
+                return true;
+
+        return false;
+}
+
 static midgard_instruction *
 mir_choose_instruction(
                 midgard_instruction **instructions,
@@ -554,7 +563,7 @@ mir_choose_instruction(
                 if (predicate->exclude != ~0 && instructions[i]->dest == predicate->exclude)
                         continue;
 
-                if (alu && !branch && !(alu_opcode_props[instructions[i]->alu.op].props & unit))
+                if (alu && !branch && !(mir_has_unit(instructions[i], unit)))
                         continue;
 
                 if (branch && !instructions[i]->compact_branch)