diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-07-30 16:55:16 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-07-31 09:39:16 -0700 |
commit | 27524d1462c388162830bad38a8e2a2f4cf46ea8 (patch) | |
tree | f60c6f4295622d7915943bd50b4e8fed194f5d5b /src | |
parent | 64235b1eccdaf4c26b83c4bfc720dfd36c94412e (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.h | 2 | ||||
-rw-r--r-- | 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] = { |