ac/nir: Simplify arg unpacking when shift is zero.
authorTimur Kristóf <timur.kristof@gmail.com>
Mon, 3 Jul 2023 15:06:50 +0000 (17:06 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 14 Jul 2023 12:17:24 +0000 (12:17 +0000)
This is so we can just use the same function when it's zero.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

src/amd/common/ac_nir.c

index cdb609c..8ed8377 100644 (file)
@@ -40,7 +40,10 @@ ac_nir_unpack_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct a
                   unsigned rshift, unsigned bitwidth)
 {
    nir_ssa_def *value = ac_nir_load_arg(b, ac_args, arg);
-   return nir_ubfe_imm(b, value, rshift, bitwidth);
+   if (rshift)
+      return nir_ubfe_imm(b, value, rshift, bitwidth);
+   else
+      return nir_iand_imm(b, value, BITFIELD_MASK(bitwidth));
 }
 
 static bool