panfrost/midgard: Add umin/umax opcodes

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Alyssa Rosenzweig 2019-04-05 05:16:54 +00:00
parent d84ee49027
commit 2e7555b14b
3 changed files with 8 additions and 0 deletions

View file

@ -196,6 +196,8 @@ static unsigned alu_opcode_props[256] = {
[midgard_alu_op_fmax] = UNITS_MUL | UNITS_ADD,
[midgard_alu_op_imin] = UNITS_MOST,
[midgard_alu_op_imax] = UNITS_MOST,
[midgard_alu_op_umin] = UNITS_MOST,
[midgard_alu_op_umax] = UNITS_MOST,
[midgard_alu_op_fmov] = UNITS_ALL | QUIRK_FLIPPED_R24,
[midgard_alu_op_fround] = UNITS_ADD,
[midgard_alu_op_froundeven] = UNITS_ADD,

View file

@ -74,7 +74,9 @@ typedef enum {
midgard_alu_op_isub = 0x46,
midgard_alu_op_imul = 0x58,
midgard_alu_op_imin = 0x60,
midgard_alu_op_umin = 0x61,
midgard_alu_op_imax = 0x62,
midgard_alu_op_umax = 0x63,
midgard_alu_op_iasr = 0x68,
midgard_alu_op_ilsr = 0x69,
midgard_alu_op_ishl = 0x6E,
@ -480,7 +482,9 @@ static char *alu_opcode_names[256] = {
[midgard_alu_op_fdot4] = "fdot4",
[midgard_alu_op_freduce] = "freduce",
[midgard_alu_op_imin] = "imin",
[midgard_alu_op_umin] = "umin",
[midgard_alu_op_imax] = "imax",
[midgard_alu_op_umax] = "umax",
[midgard_alu_op_ishl] = "ishl",
[midgard_alu_op_iasr] = "iasr",
[midgard_alu_op_ilsr] = "ilsr",

View file

@ -1029,6 +1029,8 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr)
ALU_CASE(fmax, fmax);
ALU_CASE(imin, imin);
ALU_CASE(imax, imax);
ALU_CASE(umin, umin);
ALU_CASE(umax, umax);
ALU_CASE(fmov, fmov);
ALU_CASE(ffloor, ffloor);
ALU_CASE(fround_even, froundeven);