The pass can create a temporary result for the instruction and then
moves from it to the original destination, however, if the original
instruction was predicated, the mov has to be predicated as well.
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
* size_written accordingly.
*/
inst->size_written = inst->dst.component_size(inst->exec_size);
- ibld.at(block, inst->next).MOV(dst, strided_temp)->saturate = saturate;
+
+ fs_inst *mov = ibld.at(block, inst->next).MOV(dst, strided_temp);
+ mov->saturate = saturate;
+ mov->predicate = inst->predicate;
progress = true;
}