diff --git a/src/panfrost/midgard/midgard_schedule.c b/src/panfrost/midgard/midgard_schedule.c index abaf3ed578e..fa9676f3738 100644 --- a/src/panfrost/midgard/midgard_schedule.c +++ b/src/panfrost/midgard/midgard_schedule.c @@ -1004,13 +1004,6 @@ mir_schedule_alu( predicate.no_cond = true; } - if (writeout < PAN_WRITEOUT_Z) - mir_choose_alu(&smul, instructions, worklist, len, &predicate, UNIT_SMUL); - - predicate.no_mask = writeout ? (1 << 3) : 0; - mir_choose_alu(&vlut, instructions, worklist, len, &predicate, UNIT_VLUT); - predicate.no_mask = 0; - if (writeout) { /* Propagate up */ bundle.last_writeout = branch->last_writeout; @@ -1103,6 +1096,12 @@ mir_schedule_alu( vlut->unit = UNIT_VLUT; } + mir_choose_alu(&smul, instructions, worklist, len, &predicate, UNIT_SMUL); + + predicate.no_mask = writeout ? (1 << 3) : 0; + mir_choose_alu(&vlut, instructions, worklist, len, &predicate, UNIT_VLUT); + predicate.no_mask = 0; + mir_choose_alu(&vadd, instructions, worklist, len, &predicate, UNIT_VADD); mir_update_worklist(worklist, len, instructions, vlut);