agx: Remove p_extract
It's now unused. We didn't have coalescing for it anyway, splits are the preferred alternative. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17198>
This commit is contained in:
@@ -257,7 +257,6 @@ op("p_logical_end", _, dests = 0, srcs = 0, can_eliminate = False)
|
||||
|
||||
op("p_combine", _, srcs = 4)
|
||||
op("p_split", _, srcs = 1, dests = 4)
|
||||
op("p_extract", _, srcs = 1, imms = [COMPONENT])
|
||||
|
||||
# Phis are special-cased in the IR as they (uniquely) can take an unbounded
|
||||
# number of source.
|
||||
|
@@ -197,7 +197,7 @@ agx_optimizer_forward(agx_context *ctx)
|
||||
agx_optimizer_fmov(defs, I);
|
||||
|
||||
/* Inline immediates if we can. TODO: systematic */
|
||||
if (I->op != AGX_OPCODE_ST_VARY && I->op != AGX_OPCODE_ST_TILE && I->op != AGX_OPCODE_P_EXTRACT && I->op != AGX_OPCODE_P_COMBINE)
|
||||
if (I->op != AGX_OPCODE_ST_VARY && I->op != AGX_OPCODE_ST_TILE && I->op != AGX_OPCODE_P_COMBINE)
|
||||
agx_optimizer_inline_imm(defs, I, info.nr_srcs, info.is_float);
|
||||
}
|
||||
|
||||
|
@@ -340,19 +340,6 @@ agx_ra(agx_context *ctx)
|
||||
}
|
||||
|
||||
agx_emit_parallel_copies(&b, copies, n);
|
||||
agx_remove_instruction(ins);
|
||||
continue;
|
||||
} else if (ins->op == AGX_OPCODE_P_EXTRACT) {
|
||||
/* Uses the destination size */
|
||||
unsigned size = agx_size_align_16(ins->dest[0].size);
|
||||
unsigned left = agx_index_to_reg(ssa_to_reg, ins->dest[0]);
|
||||
unsigned right = agx_index_to_reg(ssa_to_reg, ins->src[0]) + (size * ins->imm);
|
||||
|
||||
if (left != right) {
|
||||
agx_mov_to(&b, agx_register(left, ins->dest[0].size),
|
||||
agx_register(right, ins->src[0].size));
|
||||
}
|
||||
|
||||
agx_remove_instruction(ins);
|
||||
continue;
|
||||
} else if (ins->op == AGX_OPCODE_P_SPLIT) {
|
||||
|
Reference in New Issue
Block a user