Right, this is a ISA restrication. Then we have to use DWORD to represent this value. Just pushed this patch, thanks.
On Fri, Oct 17, 2014 at 02:29:56AM +0000, Yang, Rong R wrote: > slmoffset is used as dst in DWord logical instruction, such as shift. > In such instruction, dst register must larger than src register, change > slmoffset to Word may have potential issue. So it better to use DWord. > > -----Original Message----- > From: Zhigang Gong [mailto:[email protected]] > Sent: Thursday, October 16, 2014 14:30 > To: Yang, Rong R > Cc: [email protected] > Subject: Re: [Beignet] [PATCH] Fix a HSW regression. > > Good catch yang rong, but this doesn't look like a regression itself. > It has been there from the beginning. And considering that the total SLM size > is only 64K, so a unsigned WORD should be good enough for it right? > > We may need to fix the related code in the gen_insn_selection.cpp and > gen75_context.cpp. > > Last time I visited these special register allocations/definitions, I thought > we lack of sanity check here and may allocate incorrect register space at > backend which is very hard to debug. > > We may need to add some sanity check between here and the actual special > register allocation and usage places to make sure those registers are > allocated correctly. > > Any thought? > > > On Thu, Oct 16, 2014 at 11:07:37AM +0800, Yang Rong wrote: > > slmoffset use as DWORD register, but declare WORD, fix it. > > > > Signed-off-by: Yang Rong <[email protected]> > > --- > > backend/src/ir/profile.cpp | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/backend/src/ir/profile.cpp b/backend/src/ir/profile.cpp > > index 57cce4b..295b612 100644 > > --- a/backend/src/ir/profile.cpp > > +++ b/backend/src/ir/profile.cpp > > @@ -83,7 +83,7 @@ namespace ir { > > DECL_NEW_REG(FAMILY_DWORD, zero, 1); > > DECL_NEW_REG(FAMILY_DWORD, one, 1); > > DECL_NEW_REG(FAMILY_WORD, retVal, 1); > > - DECL_NEW_REG(FAMILY_WORD, slmoffset, 1); > > + DECL_NEW_REG(FAMILY_DWORD, slmoffset, 1); > > DECL_NEW_REG(FAMILY_DWORD, printfbptr, 1); > > DECL_NEW_REG(FAMILY_DWORD, printfiptr, 1); > > DECL_NEW_REG(FAMILY_DWORD, invalid, 1); > > -- > > 1.9.1 > > > > _______________________________________________ > > Beignet mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
