From 86ae6f477d24169cbc27d53c57d5d024d73e4e4a Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Thu, 3 Apr 2014 10:35:09 -0700 Subject: [PATCH] i965/fs: Fix off-by-one in saturate propagation. ip needs to be initialized to start_ip - 1, since the first thing in the main loop is ip++. Otherwise we would incorrectly propagate the saturate from the mov to the mad: mad a, b, c, d mov.sat x, a add y, z, a Reviewed-by: Ian Romanick --- src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp index 189888e..eaecb45 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp @@ -32,7 +32,7 @@ static bool opt_saturate_propagation_local(fs_visitor *v, bblock_t *block) { bool progress = false; - int ip = block->start_ip; + int ip = block->start_ip - 1; for (fs_inst *inst = (fs_inst *)block->start; inst != block->end->next; -- 2.7.4