panfrost/midgard: Add ult/ule ops
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user