From 27524d1462c388162830bad38a8e2a2f4cf46ea8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 30 Jul 2019 16:55:16 -0700 Subject: [PATCH] pan/midgard: Add units for more instructions For everything but freduce, we have some sense of what units the instruction takes. Signed-off-by: Alyssa Rosenzweig --- src/panfrost/midgard/midgard.h | 2 +- src/panfrost/midgard/midgard_ops.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/panfrost/midgard/midgard.h b/src/panfrost/midgard/midgard.h index 28b79575ff7..04257a737bd 100644 --- a/src/panfrost/midgard/midgard.h +++ b/src/panfrost/midgard/midgard.h @@ -78,7 +78,7 @@ typedef enum { midgard_alu_op_freduce = 0x3F, midgard_alu_op_iadd = 0x40, - midgard_alu_op_ishladd = 0x41, + midgard_alu_op_ishladd = 0x41, /* a + (b<<1) */ midgard_alu_op_isub = 0x46, midgard_alu_op_iaddsat = 0x48, midgard_alu_op_uaddsat = 0x49, diff --git a/src/panfrost/midgard/midgard_ops.c b/src/panfrost/midgard/midgard_ops.c index e0d8d886a79..37aa69f962a 100644 --- a/src/panfrost/midgard/midgard_ops.c +++ b/src/panfrost/midgard/midgard_ops.c @@ -64,6 +64,7 @@ struct mir_op_props alu_opcode_props[256] = { /* Incredibly, iadd can run on vmul, etc */ [midgard_alu_op_iadd] = {"iadd", UNITS_MOST | OP_COMMUTES}, + [midgard_alu_op_ishladd] = {"ishladd", UNITS_MUL}, [midgard_alu_op_iaddsat] = {"iaddsat", UNITS_ADD | OP_COMMUTES}, [midgard_alu_op_uaddsat] = {"uaddsat", UNITS_ADD | OP_COMMUTES}, [midgard_alu_op_iabsdiff] = {"iabsdiff", UNITS_ADD}, @@ -161,12 +162,11 @@ struct mir_op_props alu_opcode_props[256] = { [midgard_alu_op_ubany_lt] = {"ubany_lt", UNITS_VECTOR | OP_CHANNEL_COUNT(4) | OP_COMMUTES}, [midgard_alu_op_ubany_lte] = {"ubany_lte", UNITS_VECTOR | OP_CHANNEL_COUNT(4) | OP_COMMUTES}, - /* These instructions are not yet emitted by the compiler, so - * don't speculate about units yet */ - [midgard_alu_op_ishladd] = {"ishladd", 0}, + [midgard_alu_op_fatan2_pt1] = {"fatan2_pt1", UNIT_VLUT}, + [midgard_alu_op_fatan_pt2] = {"fatan_pt2", UNIT_VLUT}, + + /* Haven't seen in a while */ [midgard_alu_op_freduce] = {"freduce", 0}, - [midgard_alu_op_fatan2_pt1] = {"fatan2_pt1", 0}, - [midgard_alu_op_fatan_pt2] = {"fatan_pt2", 0}, }; const char *load_store_opcode_names[256] = { -- 2.30.2