File beignet-disable-NegAddOptimization.patch of Package beignet
Disable optimization for negative modifier introduced in 1.3.2
in upstream commit 81755054c4c19d821e58456a1a7d601806e60e92
(cherry-picked from f8053378a254e0eac9b5b2188e81a0308e290647)
as it's causing self-test failures, seen in upstream GitHub
issue #7(https://github.com/intel/beignet/issues/7) with
the following message:
Beignet: self-test failed: (3, 7, 5) + (5, 7, 3) returned (6, 7, 5)
Index: Beignet-1.3.2-Source/backend/src/backend/gen_insn_selection_optimize.cpp
===================================================================
--- Beignet-1.3.2-Source.orig/backend/src/backend/gen_insn_selection_optimize.cpp
+++ Beignet-1.3.2-Source/backend/src/backend/gen_insn_selection_optimize.cpp
@@ -303,6 +303,7 @@ namespace gbe
Do it just like a: mov b, -b, so it is a Mov operation like LocalCopyPropagation
*/
void SelBasicBlockOptimizer::doNegAddOptimization(SelectionInstruction &insn) {
+#if 0
if (insn.opcode == SEL_OP_ADD) {
GenRegister src0 = insn.src(0);
GenRegister src1 = insn.src(1);
@@ -310,6 +311,7 @@ namespace gbe
(src1.negation && src0.file == GEN_IMMEDIATE_VALUE && src0.value.f == 0.0f))
addToReplaceInfoMap(insn);
}
+#endif
}
void SelBasicBlockOptimizer::run()