vc4: Don't try the SF coalescing unless it's on a def.
If you want the SF of the value of a register produced from a series of packing MOVs or conditional MOVs, we can't just SF on the last MOV into the register.
This commit is contained in:
@@ -503,9 +503,9 @@ qir_SF(struct vc4_compile *c, struct qreg src)
|
|||||||
if (!list_empty(&c->instructions))
|
if (!list_empty(&c->instructions))
|
||||||
last_inst = (struct qinst *)c->instructions.prev;
|
last_inst = (struct qinst *)c->instructions.prev;
|
||||||
|
|
||||||
if (!last_inst ||
|
if (src.file != QFILE_TEMP ||
|
||||||
last_inst->dst.file != src.file ||
|
!c->defs[src.index] ||
|
||||||
last_inst->dst.index != src.index ||
|
last_inst != c->defs[src.index] ||
|
||||||
qir_is_multi_instruction(last_inst)) {
|
qir_is_multi_instruction(last_inst)) {
|
||||||
src = qir_MOV(c, src);
|
src = qir_MOV(c, src);
|
||||||
last_inst = (struct qinst *)c->instructions.prev;
|
last_inst = (struct qinst *)c->instructions.prev;
|
||||||
|
Reference in New Issue
Block a user