aco: preserve pass_flags during format conversions

This helps the "vopc() & exec" optimization.

fossil-db (Sienna Cichlid):
Totals from 1638 (1.21% of 134913) affected shaders:
CodeSize: 3331804 -> 3327520 (-0.13%); split: -0.19%, +0.06%
Instrs: 611807 -> 610096 (-0.28%)
Latency: 5579326 -> 5574874 (-0.08%)
InvThroughput: 936782 -> 936731 (-0.01%); split: -0.01%, +0.00%
Copies: 43324 -> 43302 (-0.05%); split: -0.06%, +0.01%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14773>
This commit is contained in:
Rhys Perry
2022-01-28 14:49:50 +00:00
committed by Marge Bot
parent 1804c21fb5
commit 16e0c312fa
2 changed files with 6 additions and 0 deletions

View File

@@ -289,6 +289,8 @@ convert_to_SDWA(chip_class chip, aco_ptr<Instruction>& instr)
if (instr->operands.size() >= 3)
instr->operands[2].setFixed(vcc);
instr->pass_flags = tmp->pass_flags;
return tmp;
}
@@ -375,6 +377,8 @@ convert_to_DPP(aco_ptr<Instruction>& instr, bool dpp8)
if (instr->operands.size() >= 3)
instr->operands[2].setFixed(vcc);
instr->pass_flags = tmp->pass_flags;
return tmp;
}