From 8d949ecd3ae58d8e8975de698b5b49529038ebaf Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 4 Feb 2022 17:36:27 -0500 Subject: [PATCH] pan/mdg: Model zero/sign extension for 8/16-bit loads The destinations are packed as if 32-bit even for 8/16-bit loads, so the mask needs to be constructed accordingly. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/midgard/midgard_compile.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index 793612b7131..4dabf8bf9a4 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -1199,7 +1199,9 @@ mir_set_intr_mask(nir_instr *instr, midgard_instruction *ins, bool is_read) if (is_read) { nir_mask = mask_of(nir_intrinsic_dest_components(intr)); - dsize = nir_dest_bit_size(intr->dest); + + /* Extension is mandatory for 8/16-bit loads */ + dsize = nir_dest_bit_size(intr->dest) == 64 ? 64 : 32; } else { nir_mask = nir_intrinsic_write_mask(intr); dsize = OP_IS_COMMON_STORE(ins->op) ?