broadcom/compiler: disallow copy propagation of FMOV exclusive modifiers

Since .sat, .nsat and .max0 are only supported with FMOV we can't copy
propagate an FMOV with any of these unpack modifiers into a different
opcode.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
This commit is contained in:
Iago Toral Quiroga
2024-07-08 12:24:43 +02:00
parent fa959c2993
commit d62082a131

View File

@@ -208,6 +208,14 @@ try_copy_prop(struct v3d_compile *c, struct qinst *inst, struct qinst **movs)
break;
}
}
/* These are only available with FMOV */
if (mov->qpu.alu.mul.a.unpack >= V3D71_QPU_UNPACK_SAT &&
mov->qpu.alu.mul.a.unpack <= V3D71_QPU_UNPACK_MAX0 &&
inst->qpu.alu.mul.op != V3D_QPU_M_FMOV) {
assert(c->devinfo->ver >= 71);
return false;
}
}
if (debug) {