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.
---
src/intel/compiler/brw_fs_lower_conversions.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
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;
}
--
2.17.1
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev