Module: Mesa Branch: main Commit: 2201f5a58c07866130a67602875d13b1824708e0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2201f5a58c07866130a67602875d13b1824708e0
Author: Rhys Perry <[email protected]> Date: Thu Jul 29 16:55:51 2021 +0100 aco: remove label_extract if the extract is used by a non-VALU If an extract is used by a non-VALU instruction, it can't be applied to all instructions, so it's not beneficial to try to apply it. This check isn't needed because can_apply_extract()/can_use_SDWA() should already handle non-VALU instructions. fossil-db (Sienna Cichlid): Totals from 1020 (0.68% of 150170) affected shaders: SpillSGPRs: 1577 -> 1571 (-0.38%) CodeSize: 7863668 -> 7858336 (-0.07%); split: -0.07%, +0.00% Instrs: 1431583 -> 1431083 (-0.03%); split: -0.04%, +0.01% Latency: 25891250 -> 25890916 (-0.00%); split: -0.01%, +0.01% InvThroughput: 7248683 -> 7248655 (-0.00%); split: -0.01%, +0.01% SClause: 49072 -> 49071 (-0.00%) Copies: 126649 -> 126580 (-0.05%); split: -0.11%, +0.06% Branches: 39129 -> 39120 (-0.02%); split: -0.03%, +0.01% PreSGPRs: 53071 -> 52943 (-0.24%); split: -0.26%, +0.02% PreVGPRs: 57437 -> 57435 (-0.00%); split: -0.01%, +0.01% fossil-db (Polaris10): Totals from 654 (0.43% of 151696) affected shaders: CodeSize: 5814552 -> 5811568 (-0.05%); split: -0.05%, +0.00% Instrs: 1105783 -> 1105049 (-0.07%); split: -0.07%, +0.00% Latency: 20261458 -> 20259744 (-0.01%); split: -0.01%, +0.00% InvThroughput: 9011785 -> 9011749 (-0.00%); split: -0.00%, +0.00% Copies: 104693 -> 103904 (-0.75%); split: -0.76%, +0.00% PreSGPRs: 36105 -> 36095 (-0.03%); split: -0.03%, +0.01% PreVGPRs: 43813 -> 43809 (-0.01%) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12212> --- src/amd/compiler/aco_optimizer.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index 7d5d8426321..afc36a04022 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -880,10 +880,6 @@ apply_extract(opt_ctx& ctx, aco_ptr<Instruction>& instr, unsigned idx, ssa_info& void check_sdwa_extract(opt_ctx& ctx, aco_ptr<Instruction>& instr) { - /* only VALU can use SDWA */ - if (!instr->isVALU()) - return; - for (unsigned i = 0; i < instr->operands.size(); i++) { Operand op = instr->operands[i]; if (!op.isTemp())
