From 459cf59c6114d3dc58a4db7187126b5b17ae6c87 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 27 Apr 2020 20:12:55 -0400 Subject: [PATCH] pan/mdg: Specialize swizzle to type Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/midgard/midgard_print.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/panfrost/midgard/midgard_print.c b/src/panfrost/midgard/midgard_print.c index 58d6cf6..fb0e701 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]); } } -- 2.7.4