LGTM, thanks.
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Xiuli Pan > Sent: Friday, August 19, 2016 17:45 > To: [email protected] > Cc: Pan, Xiuli <[email protected]> > Subject: [Beignet] [PATCH] Backend: Fix printf bug for simd8 > > From: Pan Xiuli <[email protected]> > > The tmp0 and tmp1 for simd8 should be half size of the simd16 mode. > Otherwise the send message will use wrong reg and wrong message length. > > Signed-off-by: Pan Xiuli <[email protected]> > --- > backend/src/backend/gen_context.cpp | 3 ++- > backend/src/backend/gen_insn_selection.cpp | 9 ++------- > 2 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/backend/src/backend/gen_context.cpp > b/backend/src/backend/gen_context.cpp > index b429ec3..f1c58eb 100644 > --- a/backend/src/backend/gen_context.cpp > +++ b/backend/src/backend/gen_context.cpp > @@ -3411,13 +3411,14 @@ namespace gbe > void GenContext::emitPrintfInstruction(const SelectionInstruction &insn) { > const GenRegister dst = ra->genReg(insn.dst(0)); > const GenRegister tmp0 = ra->genReg(insn.dst(1)); > + const GenRegister tmp1 = ra->genReg(insn.dst(2)); > GenRegister src; > uint32_t srcNum = insn.srcNum; > if (insn.extra.continueFlag) > srcNum--; > > GenRegister addr = GenRegister::retype(tmp0, GEN_TYPE_UD); > - GenRegister data = GenRegister::offset(addr, 2); > + GenRegister data = GenRegister::retype(tmp1, GEN_TYPE_UD); > > if (!insn.extra.continueFlag) { > p->push(); { > diff --git a/backend/src/backend/gen_insn_selection.cpp > b/backend/src/backend/gen_insn_selection.cpp > index 6cfa87f..c4e2934 100644 > --- a/backend/src/backend/gen_insn_selection.cpp > +++ b/backend/src/backend/gen_insn_selection.cpp > @@ -6166,13 +6166,8 @@ extern bool OCL_DEBUGINFO; // first defined by > calling BVAR in program.cpp > uint32_t totalSize = 0; > bool isContinue = false; > GBE_ASSERT(sel.ctx.getSimdWidth() == 16 || sel.ctx.getSimdWidth() == > 8); > - if (sel.ctx.getSimdWidth() == 16) { > - tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), > GEN_TYPE_UD); > - tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), > GEN_TYPE_UD); > - } else { > - tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), > GEN_TYPE_UD); > - tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), > GEN_TYPE_UD); > - } > + tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), > GEN_TYPE_UD); > + tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), > GEN_TYPE_UD); > > /* Get the total size for one printf statement. */ > for (i = 0; i < srcNum; i++) { > -- > 2.7.4 > > _______________________________________________ > Beignet mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
