aco: don't move literal to reg when making an instruction VOP3 on GFX10
pipeline-db (Navi): Totals from affected shaders: SGPRS: 163398 -> 163398 (0.00 %) VGPRS: 143820 -> 143820 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 13065744 -> 13044308 (-0.16 %) bytes Max Waves: 18921 -> 18921 (0.00 %) Instructions: 2514644 -> 2509285 (-0.21 %) 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/2883>
This commit is contained in:
@@ -1792,7 +1792,7 @@ void register_allocation(Program *program, std::vector<std::set<Temp>> live_out_
|
||||
if (instr_needs_vop3) {
|
||||
|
||||
/* if the first operand is a literal, we have to move it to a reg */
|
||||
if (instr->operands.size() && instr->operands[0].isLiteral()) {
|
||||
if (instr->operands.size() && instr->operands[0].isLiteral() && program->chip_class < GFX10) {
|
||||
bool can_sgpr = true;
|
||||
/* check, if we have to move to vgpr */
|
||||
for (const Operand& op : instr->operands) {
|
||||
|
Reference in New Issue
Block a user