From 907fbf22ddfaf6c8ec4e56f2848a17d5313d64cc Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Mon, 7 Nov 2022 15:02:53 +0000 Subject: [PATCH] nir/gather_info: use nir_ssa_scalar_resolved MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This lets us skip copies. Signed-off-by: Rhys Perry Reviewed-by: Timur Kristóf Part-of: --- src/compiler/nir/nir_gather_info.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 9fefa52e510..c0a227f4181 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -31,22 +31,20 @@ static bool src_is_invocation_id(const nir_src *src) { assert(src->is_ssa); - if (src->ssa->parent_instr->type != nir_instr_type_intrinsic) - return false; - - return nir_instr_as_intrinsic(src->ssa->parent_instr)->intrinsic == - nir_intrinsic_load_invocation_id; + nir_ssa_scalar s = nir_ssa_scalar_resolved(src->ssa, 0); + return s.def->parent_instr->type == nir_instr_type_intrinsic && + nir_instr_as_intrinsic(s.def->parent_instr)->intrinsic == + nir_intrinsic_load_invocation_id; } static bool src_is_local_invocation_index(const nir_src *src) { assert(src->is_ssa); - if (src->ssa->parent_instr->type != nir_instr_type_intrinsic) - return false; - - return nir_instr_as_intrinsic(src->ssa->parent_instr)->intrinsic == - nir_intrinsic_load_local_invocation_index; + nir_ssa_scalar s = nir_ssa_scalar_resolved(src->ssa, 0); + return s.def->parent_instr->type == nir_instr_type_intrinsic && + nir_instr_as_intrinsic(s.def->parent_instr)->intrinsic == + nir_intrinsic_load_local_invocation_index; } static void