freedreno/ir3: Add support for CHSH and CHMASK instructions
authorKristian H. Kristensen <hoegsberg@google.com>
Thu, 10 Oct 2019 20:21:25 +0000 (13:21 -0700)
committerKristian H. Kristensen <hoegsberg@google.com>
Thu, 17 Oct 2019 20:43:53 +0000 (13:43 -0700)
Just add the constructors for now and special case similar to END so
we don't remove them.

Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
src/freedreno/ir3/ir3.h
src/freedreno/ir3/ir3_depth.c

index 50c9b70ae14031878893d9238291d27fd482b6cc..9d2a8d735285818f15c2ebea4f7347ef195619af 100644 (file)
@@ -1293,6 +1293,8 @@ INSTR0(BR)
 INSTR0(JUMP)
 INSTR1(KILL)
 INSTR0(END)
+INSTR0(CHSH)
+INSTR0(CHMASK)
 
 /* cat2 instructions, most 2 src but some 1 src: */
 INSTR2(ADD_F)
index 071b5e3c528ad1c554a5ac3fca3c01b8600f5363..bc42bfdeb3baec06327e9dd1b15193918c21ae71 100644 (file)
@@ -171,7 +171,7 @@ remove_unused_by_block(struct ir3_block *block)
 {
        bool progress = false;
        list_for_each_entry_safe (struct ir3_instruction, instr, &block->instr_list, node) {
-               if (instr->opc == OPC_END)
+               if (instr->opc == OPC_END || instr->opc == OPC_CHSH || instr->opc == OPC_CHMASK)
                        continue;
                if (instr->flags & IR3_INSTR_UNUSED) {
                        if (instr->opc == OPC_META_FO) {