[Beignet] [Patch V2 2/3] fix regression on pre-BDW platform.

xionghu.luo at intel.com xionghu.luo at intel.com
Mon Mar 20 14:38:00 UTC 2017


From: Luo Xionghu <xionghu.luo at 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.

v2: fix typo.
Signed-off-by: Luo Xionghu <xionghu.luo at 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..eff42b9 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_NONE;
+                else {
+                  insn.state.predicate = GEN_PREDICATE_NORMAL;
+                  insn.state.flag = 0;
+                  insn.state.subFlag = 1;
+                }
               }
               ++iter;
             }
-- 
2.5.0



More information about the Beignet mailing list