vc4: Fix handling of src packs on in qir_follow_movs().
The caller isn't going to expect it from a return, so it would probably get misinterpreted. If the caller had an unpack in its reg, that's fine, but don't lose track of it.
This commit is contained in:
@@ -423,13 +423,19 @@ qir_remove_instruction(struct vc4_compile *c, struct qinst *qinst)
|
||||
struct qreg
|
||||
qir_follow_movs(struct vc4_compile *c, struct qreg reg)
|
||||
{
|
||||
int pack = reg.pack;
|
||||
|
||||
while (reg.file == QFILE_TEMP &&
|
||||
c->defs[reg.index] &&
|
||||
c->defs[reg.index]->op == QOP_MOV &&
|
||||
!c->defs[reg.index]->dst.pack) {
|
||||
(c->defs[reg.index]->op == QOP_MOV ||
|
||||
c->defs[reg.index]->op == QOP_FMOV ||
|
||||
c->defs[reg.index]->op == QOP_MMOV)&&
|
||||
!c->defs[reg.index]->dst.pack &&
|
||||
!c->defs[reg.index]->src[0].pack) {
|
||||
reg = c->defs[reg.index]->src[0];
|
||||
}
|
||||
|
||||
reg.pack = pack;
|
||||
return reg;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user