From c3d7caa1e006f00c3544a79a0be7d78904ce4177 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alejandro=20Pi=C3=B1eiro?= Date: Thu, 22 Oct 2015 22:22:14 +0200 Subject: [PATCH] i965: check inst->predicate when clearing flag_live at dead code eliminate Detected by Matt Turner while reviewing commit a59359ecd22154cc2b3f88bb8c599f21af8a3934 Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4_dead_code_eliminate.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp b/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp index 4b5548a..1eaf147 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp @@ -105,7 +105,7 @@ fs_visitor::dead_code_eliminate() } } - if (inst->writes_flag()) { + if (inst->writes_flag() && !inst->predicate) { BITSET_CLEAR(flag_live, inst->flag_subreg); } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_dead_code_eliminate.cpp b/src/mesa/drivers/dri/i965/brw_vec4_dead_code_eliminate.cpp index 284e0a8..e8a51d6 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_dead_code_eliminate.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_dead_code_eliminate.cpp @@ -145,7 +145,7 @@ vec4_visitor::dead_code_eliminate() } } - if (inst->writes_flag()) { + if (inst->writes_flag() && !inst->predicate) { for (unsigned c = 0; c < 4; c++) BITSET_CLEAR(flag_live, c); } -- 2.7.4