lima/ppir: Add fabs op

Signed-off-by: Andreas Baierl <ichgeh@imkreisrum.de>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
Andreas Baierl
2019-06-21 10:50:39 +02:00
parent 2d2e824fae
commit 512397058d
4 changed files with 20 additions and 0 deletions
+15
View File
@@ -400,6 +400,20 @@ static bool ppir_lower_trunc(ppir_block *block, ppir_node *node)
return true;
}
static bool ppir_lower_abs(ppir_block *block, ppir_node *node)
{
/* Turn it into a mov and set the absolute modifier */
ppir_alu_node *alu = ppir_node_to_alu(node);
assert(alu->num_src == 1);
alu->src[0].absolute = true;
alu->src[0].negate = false;
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);
@@ -435,6 +449,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_const] = ppir_lower_const,
[ppir_op_dot2] = ppir_lower_dot,
[ppir_op_dot3] = ppir_lower_dot,
+1
View File
@@ -119,6 +119,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_fadd] = ppir_op_add,
[nir_op_fdot2] = ppir_op_dot2,
[nir_op_fdot3] = ppir_op_dot3,
+3
View File
@@ -37,6 +37,9 @@ const ppir_op_info ppir_op_infos[] = {
PPIR_INSTR_SLOT_END
},
},
[ppir_op_abs] = {
.name = "abs",
},
[ppir_op_mul] = {
.name = "mul",
.slots = (int []) {
+1
View File
@@ -32,6 +32,7 @@
typedef enum {
ppir_op_mov,
ppir_op_abs,
ppir_op_add,
ppir_op_ddx,