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