summaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2019-12-03 14:10:45 +0000
committerTimur Kristóf <[email protected]>2019-12-21 12:38:42 +0100
commit01ccd7839cb5f2266aed2e7693dda374752c86a6 (patch)
tree801433e6408de28aeddf18ae6274639e024bc930 /src/amd
parent6ff92f3d684747c4597f926766ad264db5875a3c (diff)
aco: improve jump threading with wave32
Totals from affected shaders: SGPRS: 748746 -> 748746 (0.00 %) VGPRS: 636984 -> 636984 (0.00 %) Spilled SGPRs: 387 -> 387 (0.00 %) Spilled VGPRs: 15 -> 15 (0.00 %) Code Size: 61138824 -> 60928620 (-0.34 %) bytes Max Waves: 48602 -> 48602 (0.00 %) Instructions: 11967660 -> 11915084 (-0.44 %) Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/compiler/aco_ssa_elimination.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/amd/compiler/aco_ssa_elimination.cpp b/src/amd/compiler/aco_ssa_elimination.cpp
index 54e691ba476..95e2e842a9c 100644
--- a/src/amd/compiler/aco_ssa_elimination.cpp
+++ b/src/amd/compiler/aco_ssa_elimination.cpp
@@ -153,7 +153,8 @@ void try_remove_invert_block(ssa_elimination_ctx& ctx, Block* block)
for (aco_ptr<Instruction>& instr : block->instructions) {
if (instr->opcode != aco_opcode::p_linear_phi &&
instr->opcode != aco_opcode::p_phi &&
- instr->opcode != aco_opcode::s_andn2_b64 &&
+ (instr->opcode != aco_opcode::s_andn2_b64 || ctx.program->wave_size != 64) &&
+ (instr->opcode != aco_opcode::s_andn2_b32 || ctx.program->wave_size != 32) &&
instr->opcode != aco_opcode::p_branch)
return;
}