mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 01:18:06 +02:00
aco: stop labeling first def of and(uniform_bool/uniform_bitwise, exec)
The optimizer shouldn't consider a lanemask to be a uniform boolean unless it's either 0 or -1. Optimizations involving s_not/s_xor might not work properly otherwise. No fossil-db changes (navi21). 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
5cf5e997b7
commit
2239a5e9ae
1 changed files with 0 additions and 4 deletions
|
|
@ -1910,16 +1910,12 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
|||
* uniform bool into divergent */
|
||||
ctx.info[instr->definitions[1].tempId()].set_temp(
|
||||
ctx.info[instr->operands[0].tempId()].temp);
|
||||
ctx.info[instr->definitions[0].tempId()].set_uniform_bool(
|
||||
ctx.info[instr->operands[0].tempId()].temp);
|
||||
break;
|
||||
} else if (ctx.info[instr->operands[0].tempId()].is_uniform_bitwise()) {
|
||||
/* Try to get rid of the superfluous s_and_b64, since the uniform bitwise instruction
|
||||
* already produces the same SCC */
|
||||
ctx.info[instr->definitions[1].tempId()].set_temp(
|
||||
ctx.info[instr->operands[0].tempId()].parent_instr->definitions[1].getTemp());
|
||||
ctx.info[instr->definitions[0].tempId()].set_uniform_bool(
|
||||
ctx.info[instr->operands[0].tempId()].parent_instr->definitions[1].getTemp());
|
||||
break;
|
||||
} else if ((ctx.program->stage.num_sw_stages() > 1 ||
|
||||
ctx.program->stage.hw == AC_HW_NEXT_GEN_GEOMETRY_SHADER) &&
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue