mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 00:30:11 +01:00
intel/fs: Fix integer multiplication lowering for src/dst hazards
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
fd1bcccc2d
commit
d54f8ec744
1 changed files with 8 additions and 2 deletions
|
|
@ -3487,8 +3487,14 @@ fs_visitor::lower_integer_multiplication()
|
|||
* schedule multi-component multiplications much better.
|
||||
*/
|
||||
|
||||
bool needs_mov = false;
|
||||
fs_reg orig_dst = inst->dst;
|
||||
if (orig_dst.is_null() || orig_dst.file == MRF) {
|
||||
if (orig_dst.is_null() || orig_dst.file == MRF ||
|
||||
regions_overlap(inst->dst, inst->size_written,
|
||||
inst->src[0], inst->size_read(0)) ||
|
||||
regions_overlap(inst->dst, inst->size_written,
|
||||
inst->src[1], inst->size_read(1))) {
|
||||
needs_mov = true;
|
||||
inst->dst = fs_reg(VGRF, alloc.allocate(dispatch_width / 8),
|
||||
inst->dst.type);
|
||||
}
|
||||
|
|
@ -3519,7 +3525,7 @@ fs_visitor::lower_integer_multiplication()
|
|||
subscript(low, BRW_REGISTER_TYPE_UW, 1),
|
||||
subscript(high, BRW_REGISTER_TYPE_UW, 0));
|
||||
|
||||
if (inst->conditional_mod || orig_dst.file == MRF) {
|
||||
if (needs_mov || inst->conditional_mod) {
|
||||
set_condmod(inst->conditional_mod,
|
||||
ibld.MOV(orig_dst, inst->dst));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue