From: Alyssa Rosenzweig Date: Tue, 26 Mar 2019 04:00:33 +0000 (+0000) Subject: panfrost/midgard: Add ult/ule ops X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8739c24ee2fdccc60e4e18357eb9e63ae2b8183;p=mesa.git panfrost/midgard: Add ult/ule ops Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/midgard/helpers.h b/src/gallium/drivers/panfrost/midgard/helpers.h index 01c88ed0fcf..0d553d87917 100644 --- a/src/gallium/drivers/panfrost/midgard/helpers.h +++ b/src/gallium/drivers/panfrost/midgard/helpers.h @@ -223,6 +223,8 @@ static unsigned alu_opcode_props[256] = { [midgard_alu_op_ine] = UNITS_MOST, [midgard_alu_op_ilt] = UNITS_MOST, [midgard_alu_op_ile] = UNITS_MOST, + [midgard_alu_op_ule] = UNITS_MOST, + [midgard_alu_op_ult] = UNITS_MOST, [midgard_alu_op_icsel] = UNITS_ADD, [midgard_alu_op_fcsel_i] = UNITS_ADD, diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h index c40c94bc378..eab7cb5eec0 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard.h +++ b/src/gallium/drivers/panfrost/midgard/midgard.h @@ -103,6 +103,8 @@ typedef enum { midgard_alu_op_ieq = 0xA0, midgard_alu_op_ine = 0xA1, + midgard_alu_op_ult = 0xA2, + midgard_alu_op_ule = 0xA3, midgard_alu_op_ilt = 0xA4, midgard_alu_op_ile = 0xA5, midgard_alu_op_iball_eq = 0xA8, @@ -470,6 +472,8 @@ static char *alu_opcode_names[256] = { [midgard_alu_op_f2u8] = "f2u8", [midgard_alu_op_ieq] = "ieq", [midgard_alu_op_ine] = "ine", + [midgard_alu_op_ult] = "ult", + [midgard_alu_op_ule] = "ule", [midgard_alu_op_ilt] = "ilt", [midgard_alu_op_ile] = "ile", [midgard_alu_op_iball_eq] = "iball_eq", diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index dac5eeb2c1b..0c7bc28f00a 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard_compile.c +++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.c @@ -991,6 +991,7 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr) ALU_CASE(ieq32, ieq); ALU_CASE(ine32, ine); ALU_CASE(ilt32, ilt); + ALU_CASE(ult32, ult); /* We don't have a native b2f32 instruction. Instead, like many * GPUs, we exploit booleans as 0/~0 for false/true, and