[Beignet] [PATCH 2/3] fix regression on pre-BDW platform.
xionghu.luo at intel.com
xionghu.luo at intel.com
Mon Mar 20 14:34:05 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.
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..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
More information about the Beignet
mailing list