aco: allow p_start_linear_vgpr to use multiple operands
Merging the p_create_vector into the p_start_linear_vgpr is useful since we stopped attempting to place the p_start_linear_vgpr definition in the same registers as the operand. fossil-db (navi31): Totals from 927 (1.17% of 79242) affected shaders: MaxWaves: 26412 -> 26442 (+0.11%) Instrs: 938328 -> 938181 (-0.02%); split: -0.14%, +0.13% CodeSize: 4891448 -> 4890820 (-0.01%); split: -0.11%, +0.10% VGPRs: 47016 -> 47004 (-0.03%); split: -0.13%, +0.10% SpillSGPRs: 222 -> 226 (+1.80%) Latency: 5076065 -> 5075191 (-0.02%); split: -0.12%, +0.10% InvThroughput: 712316 -> 712421 (+0.01%); split: -0.09%, +0.10% SClause: 27992 -> 27972 (-0.07%); split: -0.09%, +0.02% Copies: 38042 -> 38104 (+0.16%); split: -1.95%, +2.12% PreVGPRs: 39448 -> 39369 (-0.20%) VALU: 570157 -> 570224 (+0.01%); split: -0.13%, +0.14% SALU: 51672 -> 51678 (+0.01%); split: -0.01%, +0.02% 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/27697>
This commit is contained in:
@@ -580,6 +580,7 @@ pseudo_propagate_temp(opt_ctx& ctx, aco_ptr<Instruction>& instr, Temp temp, unsi
|
||||
case aco_opcode::p_linear_phi:
|
||||
case aco_opcode::p_parallelcopy:
|
||||
case aco_opcode::p_create_vector:
|
||||
case aco_opcode::p_start_linear_vgpr:
|
||||
if (temp.bytes() != instr->operands[index].bytes())
|
||||
return false;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user