aco: allow reading/writing upper halves/bytes when possible
Use SDWA, opsel or a different opcode to achieve this. shader-db (Navi, fp16 enabled): Totals from 42 (0.03% of 127638) affected shaders: VGPRs: 3424 -> 3416 (-0.23%) CodeSize: 811124 -> 811984 (+0.11%); split: -0.12%, +0.23% Instrs: 156638 -> 155733 (-0.58%) Cycles: 1994180 -> 1982568 (-0.58%); split: -0.59%, +0.00% VMEM: 7019 -> 7187 (+2.39%); split: +3.45%, -1.05% SMEM: 1771 -> 1770 (-0.06%); split: +0.06%, -0.11% VClause: 1477 -> 1475 (-0.14%) Copies: 13216 -> 12406 (-6.13%) Branches: 5942 -> 5901 (-0.69%) 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/5040>
This commit is contained in:
@@ -490,7 +490,7 @@ bool can_swap_operands(aco_ptr<Instruction>& instr)
|
||||
}
|
||||
}
|
||||
|
||||
bool can_use_VOP3(opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
||||
bool can_use_VOP3(opt_ctx& ctx, const aco_ptr<Instruction>& instr)
|
||||
{
|
||||
if (instr->isVOP3())
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user