From: Alyssa Rosenzweig Date: Tue, 28 Apr 2020 00:12:55 +0000 (-0400) Subject: pan/mdg: Specialize swizzle to type X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=459cf59c6114d3dc58a4db7187126b5b17ae6c87;p=mesa.git pan/mdg: Specialize swizzle to type Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/midgard/midgard_print.c b/src/panfrost/midgard/midgard_print.c index 58d6cf67278..fb0e701d599 100644 --- a/src/panfrost/midgard/midgard_print.c +++ b/src/panfrost/midgard/midgard_print.c @@ -71,12 +71,18 @@ mir_print_mask(unsigned mask) } static void -mir_print_swizzle(unsigned *swizzle) +mir_print_swizzle(unsigned *swizzle, nir_alu_type T) { + unsigned sz = nir_alu_type_get_type_size(T); + unsigned comps = 128 / sz; + printf("."); - for (unsigned i = 0; i < 16; ++i) - putchar(components[swizzle[i]]); + for (unsigned i = 0; i < comps; ++i) { + unsigned C = swizzle[i]; + assert(C < comps); + putchar(components[C]); + } } static const char * @@ -352,7 +358,7 @@ mir_print_instruction(midgard_instruction *ins) if (ins->src[0] != ~0) { pan_print_alu_type(ins->src_types[0], stdout); - mir_print_swizzle(ins->swizzle[0]); + mir_print_swizzle(ins->swizzle[0], ins->src_types[0]); } } printf(", "); @@ -366,7 +372,7 @@ mir_print_instruction(midgard_instruction *ins) if (ins->src[1] != ~0) { pan_print_alu_type(ins->src_types[1], stdout); - mir_print_swizzle(ins->swizzle[1]); + mir_print_swizzle(ins->swizzle[1], ins->src_types[1]); } } @@ -376,7 +382,7 @@ mir_print_instruction(midgard_instruction *ins) if (ins->src[c] != ~0) { pan_print_alu_type(ins->src_types[c], stdout); - mir_print_swizzle(ins->swizzle[c]); + mir_print_swizzle(ins->swizzle[c], ins->src_types[c]); } }