lima/ppir: Add fneg op
Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de> Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
parent
512397058d
commit
f1d89bbc2f
|
@ -414,6 +414,19 @@ static bool ppir_lower_abs(ppir_block *block, ppir_node *node)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool ppir_lower_neg(ppir_block *block, ppir_node *node)
|
||||
{
|
||||
/* Turn it into a mov and set the negate modifier */
|
||||
ppir_alu_node *alu = ppir_node_to_alu(node);
|
||||
|
||||
assert(alu->num_src == 1);
|
||||
|
||||
alu->src[0].negate = !alu->src[0].negate;
|
||||
node->op = ppir_op_mov;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ppir_lower_branch(ppir_block *block, ppir_node *node)
|
||||
{
|
||||
ppir_branch_node *branch = ppir_node_to_branch(node);
|
||||
|
@ -450,6 +463,7 @@ static bool ppir_lower_branch(ppir_block *block, ppir_node *node)
|
|||
|
||||
static bool (*ppir_lower_funcs[ppir_op_num])(ppir_block *, ppir_node *) = {
|
||||
[ppir_op_abs] = ppir_lower_abs,
|
||||
[ppir_op_neg] = ppir_lower_neg,
|
||||
[ppir_op_const] = ppir_lower_const,
|
||||
[ppir_op_dot2] = ppir_lower_dot,
|
||||
[ppir_op_dot3] = ppir_lower_dot,
|
||||
|
|
|
@ -120,6 +120,7 @@ static int nir_to_ppir_opcodes[nir_num_opcodes] = {
|
|||
[nir_op_mov] = ppir_op_mov,
|
||||
[nir_op_fmul] = ppir_op_mul,
|
||||
[nir_op_fabs] = ppir_op_abs,
|
||||
[nir_op_fneg] = ppir_op_neg,
|
||||
[nir_op_fadd] = ppir_op_add,
|
||||
[nir_op_fdot2] = ppir_op_dot2,
|
||||
[nir_op_fdot3] = ppir_op_dot3,
|
||||
|
|
|
@ -40,6 +40,9 @@ const ppir_op_info ppir_op_infos[] = {
|
|||
[ppir_op_abs] = {
|
||||
.name = "abs",
|
||||
},
|
||||
[ppir_op_neg] = {
|
||||
.name = "neg",
|
||||
},
|
||||
[ppir_op_mul] = {
|
||||
.name = "mul",
|
||||
.slots = (int []) {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
typedef enum {
|
||||
ppir_op_mov,
|
||||
ppir_op_abs,
|
||||
ppir_op_neg,
|
||||
ppir_op_add,
|
||||
|
||||
ppir_op_ddx,
|
||||
|
|
Loading…
Reference in New Issue