[Mesa-dev] [PATCH] i965/fs: don't lower different type size conversions on opt_peephole_sel()

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Jan 25 10:20:43 UTC 2017


Don't lower a type conversion between different type sizes
because SEL does't support them, SEL without conditional modifier
just do a raw move.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
---
 src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp | 2 ++
 1 file changed, 2 insertions(+)

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 8cd897f72e0..8a9f6e67a14 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_sel_peephole.cpp
@@ -167,6 +167,8 @@ fs_visitor::opt_peephole_sel()
              then_mov[i]->force_writemask_all != else_mov[i]->force_writemask_all ||
              then_mov[i]->is_partial_write() ||
              else_mov[i]->is_partial_write() ||
+             type_sz(then_mov[i]->dst.type) != type_sz(then_mov[i]->src[0].type) ||
+             type_sz(else_mov[i]->dst.type) != type_sz(else_mov[i]->src[0].type) ||
              then_mov[i]->conditional_mod != BRW_CONDITIONAL_NONE ||
              else_mov[i]->conditional_mod != BRW_CONDITIONAL_NONE) {
             movs = i;
-- 
2.11.0



More information about the mesa-dev mailing list