[Beignet] [PATCH 2/3] GBE: Need to check invalid register to determine the actual src num.
Zhigang Gong
zhigang.gong at intel.com
Tue Feb 3 20:02:10 PST 2015
This is a regression casued by 03a304b1aa4de131833d5cebedbca9a4f5851f1b.
Signed-off-by: Zhigang Gong <zhigang.gong at intel.com>
---
backend/src/backend/gen_insn_selection.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp
index 4d0b979..81fa5f8 100644
--- a/backend/src/backend/gen_insn_selection.cpp
+++ b/backend/src/backend/gen_insn_selection.cpp
@@ -4318,6 +4318,10 @@ namespace gbe
using namespace ir;
GBE_ASSERT(insn.getSrcType() != TYPE_FLOAT);
uint32_t srcNum = insn.getSrcNum();
+ if (insn.getSrc(1) == ir::ocl::invalid) //not 3D
+ srcNum = 1;
+ else if (insn.getSrc(2) == ir::ocl::invalid)
+ srcNum = 2;
msgPayloads[0] = sel.selReg(insn.getSrc(0), insn.getSrcType());
msgPayloads[1] = sel.selReg(sel.reg(FAMILY_DWORD), TYPE_U32);
sel.MOV(msgPayloads[1], GenRegister::immud(0));
--
1.8.3.2
More information about the Beignet
mailing list