From 239ef522162ea77b5ef91c0b4cd1a96977e63e90 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 16 Dec 2020 12:58:35 -0500 Subject: [PATCH] pan/bi: Add bi_branch, bi_jump helpers Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 9cc3c13a053..2a985d5cdad 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -3743,6 +3743,24 @@ bi_set_branch_cond(bi_instruction *branch, nir_src *cond, bool invert) branch->cond = invert ? BI_COND_EQ : BI_COND_NE; } +/* Emits a direct branch based on a given condition. TODO: try to unwrap the + * condition to optimize */ + +static bi_instr * +bi_branch(bi_builder *b, nir_src *condition, bool invert) +{ + return bi_branchz_i32_to(b, bi_null(), bi_src_index(condition), + bi_zero(), invert ? BI_CMPF_EQ : BI_CMPF_NE); +} + +static bi_instr * +bi_jump(bi_builder *b, bi_block *target) +{ + bi_instr *I = bi_jump_to(b, bi_null(), bi_zero()); + I->branch_target = target; + return I; +} + static void emit_if(bi_context *ctx, nir_if *nif) {