aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-07-30 16:55:16 -0700
committerAlyssa Rosenzweig <[email protected]>2019-07-31 09:39:16 -0700
commit27524d1462c388162830bad38a8e2a2f4cf46ea8 (patch)
treef60c6f4295622d7915943bd50b4e8fed194f5d5b /src
parent64235b1eccdaf4c26b83c4bfc720dfd36c94412e (diff)
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/panfrost/midgard/midgard.h2
-rw-r--r--src/panfrost/midgard/midgard_ops.c10
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] = {