This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/37491] [4.4 Regression] Revision 140257 causes vectorizer tests failures



------- Comment #8 from rguenther at suse dot de  2008-09-15 09:23 -------
Subject: Re:  [4.4 Regression] Revision 140257 causes
 vectorizer tests failures

On Mon, 15 Sep 2008, irar at il dot ibm dot com wrote:

> 
> 
> ------- Comment #7 from irar at il dot ibm dot com  2008-09-15 09:11 -------
> (In reply to comment #6)
> 
> > 
> > I see vect_create_data_ref_ptr is getting the type to use passed
> > in case of stores and this is TREE_TYPE (vec_oprnd) - is vec_oprnd
> > the lhs or the rhs?  It looks like it is the rhs which may explain
> > the ICE for PR37385, 
> 
> It's the other way around in PR37385 - it ICEs if we use the type of lhs.
> 
> > I can try to have a look here, but I'm not exactly familiar with
> > the code (thanks for the pointers ;)), so I'd appreciate if you
> > try to figure out what it takes to fix vect_create_data_ref_ptr or
> > its caller.
> 
> Sure, I never meant to ask you to look into the vectorizer code. I only gave
> you the pointers because I thought you asked. Fixing the vectorizer code is not
> a problem. The problem is I don't really understand what we should generate. 
> 
> For scalar store *x = y we create vector store *vect_x = vect_y. The type of
> vect_x must be "vector type_of_x", right? This will cause the ICE in pr 37385,
> so we must check something to prevent it. AFAIU, the ICE is because the lhs and
> the element type of rhs do not alias. Testing "vector type_of_x" and
> "type_of_y" for alias does the job. But this prevents vectorization of
> vectorize2.c (vector int and long int do not alias)...

Well, I think the ICE happens because for stores we call 
vect_create_data_ref_ptr with an explicit vector type which is based on
the rhs, not the lhs.  The ICE should never occur if we based the
vector type on the lhs.

Richard.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37491


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]