From 8a6ec4a5d8c979583895fc8d0d383af016e47714 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 9 Dec 2020 08:58:57 -0500 Subject: [PATCH] pan/bi: Add bi_is_intr_immediate helper Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 769bbd905a2..f96bfc7ce21 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -174,6 +174,21 @@ bi_interp_for_intrinsic(nir_intrinsic_op op) } } +/* Checks if the _IMM variant of an intrinsic can be used, returning in imm the + * immediate to be used (which applies even if _IMM can't be used) */ + +static bool +bi_is_intr_immediate(nir_intrinsic_instr *instr, unsigned *immediate) +{ + nir_src *offset = nir_get_io_offset_src(instr); + + if (!nir_src_is_const(*offset)) + return false; + + *immediate = nir_intrinsic_base(instr) + nir_src_as_uint(*offset); + return (*immediate) < 20; +} + static void bi_emit_ld_vary(bi_context *ctx, nir_intrinsic_instr *instr) {