[Mesa-dev] [PATCH 2/3] i965/fs: Swap if/else conditions in SEL peephole.

Matt Turner mattst88 at gmail.com
Mon Jul 21 11:42:19 PDT 2014


Will clarify make the next commit easier to read.
---
 src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp b/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp
index cf47cb5..c0bba8e 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp
@@ -175,7 +175,9 @@ fs_visitor::opt_peephole_sel()
             break;
          }
 
-         if (!then_mov[i]->src[0].equals(else_mov[i]->src[0])) {
+         if (then_mov[i]->src[0].equals(else_mov[i]->src[0])) {
+            sel_inst[i] = MOV(then_mov[i]->dst, then_mov[i]->src[0]);
+         } else {
             /* Only the last source register can be a constant, so if the MOV
              * in the "then" clause uses a constant, we need to put it in a
              * temporary.
@@ -197,8 +199,6 @@ fs_visitor::opt_peephole_sel()
                sel_inst[i]->predicate = if_inst->predicate;
                sel_inst[i]->predicate_inverse = if_inst->predicate_inverse;
             }
-         } else {
-            sel_inst[i] = MOV(then_mov[i]->dst, then_mov[i]->src[0]);
          }
       }
 
-- 
1.8.5.5



More information about the mesa-dev mailing list