mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
aco: don't both flip s_cselect and label uniform_bool
Otherwise, the uniform_bool could point to a temporary which might be DCE'd, since it's not used by the s_cselect. fossil-db (navi21): Totals from 1 (0.00% of 79825) affected shaders: Instrs: 1267 -> 1269 (+0.16%) Latency: 91071 -> 91103 (+0.04%) SALU: 283 -> 285 (+0.71%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36177>
This commit is contained in:
parent
2239a5e9ae
commit
2fff1db5c8
1 changed files with 1 additions and 2 deletions
|
|
@ -1945,8 +1945,7 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
|||
if (instr->operands[0].constantEquals((unsigned)-1) && instr->operands[1].constantEquals(0)) {
|
||||
/* Found a cselect that operates on a uniform bool that comes from eg. s_cmp */
|
||||
ctx.info[instr->definitions[0].tempId()].set_uniform_bool(instr->operands[2].getTemp());
|
||||
}
|
||||
if (instr->operands[2].isTemp() && ctx.info[instr->operands[2].tempId()].is_scc_invert()) {
|
||||
} else if (instr->operands[2].isTemp() && ctx.info[instr->operands[2].tempId()].is_scc_invert()) {
|
||||
/* Flip the operands to get rid of the scc_invert instruction */
|
||||
std::swap(instr->operands[0], instr->operands[1]);
|
||||
instr->operands[2].setTemp(ctx.info[instr->operands[2].tempId()].temp);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue