I don't know what previous test was trying to do, but it dates back to the
first add of vc4_qpu_emit.c. No change to shader-db.
}
}
+bool
+qir_is_raw_mov(struct qinst *inst)
+{
+ return (inst->op == QOP_MOV &&
+ !inst->dst.pack &&
+ !inst->src[0].pack);
+}
+
bool
qir_is_tex(struct qinst *inst)
{
bool qir_has_side_effect_reads(struct vc4_compile *c, struct qinst *inst);
bool qir_is_multi_instruction(struct qinst *inst);
bool qir_is_mul(struct qinst *inst);
+bool qir_is_raw_mov(struct qinst *inst);
bool qir_is_tex(struct qinst *inst);
bool qir_depends_on_flags(struct qinst *inst);
bool qir_writes_r4(struct qinst *inst);
switch (qinst->op) {
case QOP_MOV:
/* Skip emitting the MOV if it's a no-op. */
- if (dst.mux == QPU_MUX_A || dst.mux == QPU_MUX_B ||
+ if (qir_is_raw_mov(qinst) ||
dst.mux != src[0].mux || dst.addr != src[0].addr) {
queue(c, qpu_a_MOV(dst, src[0]));
}