From: Luo Xionghu <xionghu....@intel.com>

ivb/hsw will spit the 32X32 to two simd8 instructions, and noMask
instruction introduced there, the if-opt pass shouldn't change the
predicate state for no mask instructions.

Signed-off-by: Luo Xionghu <xionghu....@intel.com>
---
 backend/src/backend/gen_insn_selection_if_opt.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/backend/src/backend/gen_insn_selection_if_opt.cpp 
b/backend/src/backend/gen_insn_selection_if_opt.cpp
index a99b465..9b46db6 100644
--- a/backend/src/backend/gen_insn_selection_if_opt.cpp
+++ b/backend/src/backend/gen_insn_selection_if_opt.cpp
@@ -80,9 +80,13 @@ namespace gbe
               optimized = true;
             } else {
               if (if_find) {
-                insn.state.predicate = GEN_PREDICATE_NORMAL;
-                insn.state.flag = 0;
-                insn.state.subFlag = 1;
+                if (insn.state.noMask == 1)
+                  insn.state.predicate = GEN_PREDICATE_NORMAL;
+                else {
+                  insn.state.predicate = GEN_PREDICATE_NORMAL;
+                  insn.state.flag = 0;
+                  insn.state.subFlag = 1;
+                }
               }
               ++iter;
             }
-- 
2.5.0

_______________________________________________
Beignet mailing list
Beignet@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to