From dbfed965ae7d0f17f56286aa3bd580d674cfcceb Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Tue, 19 Aug 2025 08:35:37 +0200 Subject: [PATCH] ir3: use ir3_get_predicate for demote/kill Instead of duplicating its functionality. Signed-off-by: Job Noorman Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index c3a6ff79ae8..290e272ebd8 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -3133,14 +3133,7 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr) cond = create_immed_typed(b, 1, ctx->compiler->bool_type); } - /* NOTE: only cmps.*.* can write p0.x: */ - struct ir3_instruction *zero = - create_immed_typed(b, 0, is_half(cond) ? TYPE_U16 : TYPE_U32); - cond = ir3_CMPS_S(b, cond, 0, zero, 0); - cond->cat2.condition = IR3_COND_NE; - - /* condition always goes in predicate register: */ - cond->dsts[0]->flags |= IR3_REG_PREDICATE; + cond = ir3_get_predicate(ctx, cond); if (intr->intrinsic == nir_intrinsic_demote || intr->intrinsic == nir_intrinsic_demote_if) {