pan/mdg: prepare effective_writemask()

In the next commits we will be removing the `alu` field from
midgard_instruction in order to simplify the code.
effective_writemask() doesn't actually use `alu` for anything, it only
needs to know the opcode.

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5933>
This commit is contained in:
Italo Nicola
2020-07-10 16:07:06 +00:00
committed by Marge Bot
parent b1b0ce04b3
commit 598527f2fe
4 changed files with 5 additions and 5 deletions
+1 -1
View File
@@ -372,7 +372,7 @@ print_vector_constants(FILE *fp, unsigned src_binary,
assert(consts);
assert(max_comp <= 16);
comp_mask = effective_writemask(alu, condense_writemask(alu->mask, bits));
comp_mask = effective_writemask(alu->op, condense_writemask(alu->mask, bits));
num_comp = util_bitcount(comp_mask);
fprintf(fp, "<");
+1 -1
View File
@@ -2520,7 +2520,7 @@ embedded_to_inline_constant(compiler_context *ctx, midgard_block *block)
uint32_t value = is_16 ? cons->u16[component] : cons->u32[component];
bool is_vector = false;
unsigned mask = effective_writemask(&ins->alu, ins->mask);
unsigned mask = effective_writemask(ins->alu.op, ins->mask);
for (unsigned c = 0; c < MIR_VEC_COMPONENTS; ++c) {
/* We only care if this component is actually used */
+2 -2
View File
@@ -62,12 +62,12 @@ midgard_is_integer_out_op(int op)
/* Determines effective writemask, taking quirks and expansion into account */
static inline unsigned
effective_writemask(midgard_vector_alu *alu, unsigned existing_mask)
effective_writemask(midgard_alu_op op, unsigned existing_mask)
{
/* Channel count is off-by-one to fit in two-bits (0 channel makes no
* sense) */
unsigned channel_count = GET_CHANNEL_COUNT(alu_opcode_props[alu->op].props);
unsigned channel_count = GET_CHANNEL_COUNT(alu_opcode_props[op].props);
/* If there is a fixed channel count, construct the appropriate mask */
+1 -1
View File
@@ -244,7 +244,7 @@ mir_print_embedded_constant(midgard_instruction *ins, unsigned src_idx)
src = vector_alu_from_unsigned(ins->alu.src2);
unsigned *swizzle = ins->swizzle[src_idx];
unsigned comp_mask = effective_writemask(&ins->alu, ins->mask);
unsigned comp_mask = effective_writemask(ins->alu.op, ins->mask);
unsigned num_comp = util_bitcount(comp_mask);
unsigned max_comp = mir_components_for_type(ins->dest_type);
bool first = true;