From: Alyssa Rosenzweig Date: Sat, 28 Sep 2019 13:48:43 +0000 (-0400) Subject: pan/midgard: Extend choose_instruction for scalar units X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=57bac68fffe4d7dcb5cf573ca9ad4cd262d3a5e1;p=mesa.git pan/midgard: Extend choose_instruction for scalar units Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/panfrost/midgard/midgard_schedule.c b/src/panfrost/midgard/midgard_schedule.c index 64359729cc0..dfc02f1c337 100644 --- a/src/panfrost/midgard/midgard_schedule.c +++ b/src/panfrost/midgard/midgard_schedule.c @@ -393,6 +393,7 @@ mir_choose_instruction( bool alu = tag == TAG_ALU_4; unsigned unit = predicate->unit; bool branch = alu && (unit == ALU_ENAB_BR_COMPACT); + bool scalar = (unit != ~0) && (unit & UNITS_SCALAR); /* Iterate to find the best instruction satisfying the predicate */ unsigned i; @@ -427,6 +428,9 @@ mir_choose_instruction( if (branch && !instructions[i]->compact_branch) continue; + if (alu && scalar && !mir_is_scalar(instructions[i])) + continue; + if (alu && !mir_adjust_constants(instructions[i], predicate, false)) continue;