From: Luo Xionghu <[email protected]> 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 <[email protected]> --- 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 _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
