From 873fe637e20d6a7bf63dfcb456cd4aceaa373915 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 16 Jan 2024 13:00:13 +0200 Subject: [PATCH] nir/alu_srcs_negative_equal: bail earlier if possible Signed-off-by: Lionel Landwerlin Reviewed-by: Sviatoslav Peleshko Part-of: --- src/compiler/nir/nir_instr_set.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_instr_set.c b/src/compiler/nir/nir_instr_set.c index 638343a0afc..14ab6c92ffc 100644 --- a/src/compiler/nir/nir_instr_set.c +++ b/src/compiler/nir/nir_instr_set.c @@ -455,13 +455,17 @@ nir_alu_srcs_negative_equal(const nir_alu_instr *alu1, alu2_swizzle[i] = i; } + /* Bail early if sources are not equal or we don't have parity. */ + if (!parity || !nir_srcs_equal(alu1_actual_src, alu2_actual_src)) + return false; + for (unsigned i = 0; i < nir_ssa_alu_instr_src_components(alu1, src1); i++) { if (alu1_swizzle[alu1->src[src1].swizzle[i]] != alu2_swizzle[alu2->src[src2].swizzle[i]]) return false; } - return parity && nir_srcs_equal(alu1_actual_src, alu2_actual_src); + return true; } bool