diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/panfrost/midgard/midgard_schedule.c | 4 |
1 files changed, 4 insertions, 0 deletions
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; |