From fb347b8458198876d61cab627c69417c8224dd55 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 2 Apr 2026 13:59:20 -0400 Subject: [PATCH] nir: Add a couple is_zero() helpers Reviewed-by: Christoph Pillmayer Reviewed-by: Lars-Ivar Hesselberg Simonsen Reviewed-by: Lorenzo Rossi Part-of: --- src/compiler/nir/nir.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 6b24604946b..d580319b322 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -3102,6 +3102,20 @@ NIR_DEFINE_SRC_AS_CONST(double, float) #undef NIR_DEFINE_SRC_AS_CONST +static inline bool +nir_src_is_zero(nir_src src) +{ + if (!nir_src_is_const(src)) + return false; + + for (unsigned i = 0; i < nir_src_num_components(src); i++) { + if (nir_src_comp_as_uint(src, i) != 0) + return false; + } + + return true; +} + static inline nir_const_value nir_scalar_as_const_value(nir_scalar s) { @@ -3125,6 +3139,12 @@ NIR_DEFINE_SCALAR_AS_CONST(double, float) #undef NIR_DEFINE_SCALAR_AS_CONST +static inline bool +nir_scalar_is_zero(nir_scalar s) +{ + return nir_scalar_is_const(s) && nir_scalar_as_uint(s) == 0; +} + static inline nir_op nir_scalar_alu_op(nir_scalar s) {