intel/compiler: fix lower conversions to account for predication

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>
This commit is contained in:
Iago Toral Quiroga 2018-07-17 11:10:34 +02:00
parent df679b1643
commit 615aaedb93

View file

@ -98,7 +98,10 @@ fs_visitor::lower_conversions()
* 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;
}