aboutsummaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorIago Toral Quiroga <[email protected]>2018-07-17 11:10:34 +0200
committerIago Toral Quiroga <[email protected]>2018-07-27 14:48:29 +0200
commit615aaedb934bb573bf1486de0f4d3b5742da9065 (patch)
tree831025b4cc1d94f99849ecdcaaa3a7de7ebc7bda /src/intel
parentdf679b1643cdf7cb9110a7898cec7617f8154d2d (diff)
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 <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/compiler/brw_fs_lower_conversions.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_fs_lower_conversions.cpp b/src/intel/compiler/brw_fs_lower_conversions.cpp
index e27e2402746..145fb55f995 100644
--- a/src/intel/compiler/brw_fs_lower_conversions.cpp
+++ b/src/intel/compiler/brw_fs_lower_conversions.cpp
@@ -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;
}