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

Reply via email to