intel/fs: Only propagate saturation if exec_size is the same.
Otherwise it could propagate the saturation from a SIMD16 instruction into a SIMD8 instruction. With that, only part of the destination register, which is the source of the move with saturation, would have been updated. Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -65,7 +65,8 @@ opt_saturate_propagation_local(fs_visitor *v, bblock_t *block,
|
||||
|
||||
bool interfered = false;
|
||||
foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
|
||||
if (regions_overlap(scan_inst->dst, scan_inst->size_written,
|
||||
if (scan_inst->exec_size == inst->exec_size &&
|
||||
regions_overlap(scan_inst->dst, scan_inst->size_written,
|
||||
inst->src[0], inst->size_read(0))) {
|
||||
if (scan_inst->is_partial_var_write(dispatch_width) ||
|
||||
(scan_inst->dst.type != inst->dst.type &&
|
||||
|
Reference in New Issue
Block a user