panfrost/midgard: Add fcsel_i opcode
Whereas a normal fcsel acts on a boolean input in r31.w, the fcsel_i variant acts on an integer input in r31.w, which can be preloaded with an instruction like imov (with the appropriate negate flag on the source). Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
parent
121417ef1d
commit
89fdbb6707
|
@ -223,6 +223,7 @@ static unsigned alu_opcode_props[256] = {
|
|||
[midgard_alu_op_ile] = UNITS_MOST,
|
||||
|
||||
[midgard_alu_op_icsel] = UNITS_ADD,
|
||||
[midgard_alu_op_fcsel_i] = UNITS_ADD,
|
||||
[midgard_alu_op_fcsel] = UNITS_ADD | UNIT_SMUL,
|
||||
|
||||
[midgard_alu_op_frcp] = UNIT_VLUT,
|
||||
|
|
|
@ -105,6 +105,7 @@ typedef enum {
|
|||
midgard_alu_op_i2f = 0xB8,
|
||||
midgard_alu_op_u2f = 0xBC,
|
||||
midgard_alu_op_icsel = 0xC1,
|
||||
midgard_alu_op_fcsel_i = 0xC4,
|
||||
midgard_alu_op_fcsel = 0xC5,
|
||||
midgard_alu_op_fround = 0xC6,
|
||||
midgard_alu_op_fatan_pt2 = 0xE8,
|
||||
|
@ -457,6 +458,7 @@ static char *alu_opcode_names[256] = {
|
|||
[midgard_alu_op_i2f] = "i2f",
|
||||
[midgard_alu_op_u2f] = "u2f",
|
||||
[midgard_alu_op_icsel] = "icsel",
|
||||
[midgard_alu_op_fcsel_i] = "fcsel_i",
|
||||
[midgard_alu_op_fcsel] = "fcsel",
|
||||
[midgard_alu_op_fround] = "fround",
|
||||
[midgard_alu_op_fatan_pt2] = "fatan_pt2",
|
||||
|
|
Loading…
Reference in New Issue