This is the last thing that register_coalesce() still handled. --- src/mesa/drivers/dri/i965/brw_fs.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index eecde62..168411c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2271,7 +2271,8 @@ fs_visitor::register_coalesce_2() int var_from = live_intervals->var_from_reg(&inst->src[0]); int var_to = live_intervals->var_from_reg(&inst->dst); - if (live_intervals->vars_interfere(var_from, var_to)) + if (live_intervals->vars_interfere(var_from, var_to) && + !inst->dst.equals(inst->src[0])) continue; int reg_from = inst->src[0].reg; -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev