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/39932] [4.5 Regression] Revision 146831 caused many test failures



------- Comment #5 from rguenther at suse dot de  2009-04-28 21:21 -------
Subject: Re:  [4.5 Regression] Revision 146831 caused
 many test failures

On Tue, 28 Apr 2009, pinskia at gcc dot gnu dot org wrote:

> (In reply to comment #3)
> > There error I get on cc.c-torture/execute/20050604-1.c and
> > gcc.dg/torture/pr21817-1.c with optimization level 1 or greater is:
> > 
> > x.c:6: error: invalid expression for min lvalue
> > D.2000_6 = BIT_FIELD_REF <{ 1.0e+9, 1.0e+9, 1.0e+9, 1.0e+9 }, 64, 64>;
> > 
> > pr21817.c is pretty small already but I did cut it down to:
> > 
> > typedef float v4sf __attribute__((vector_size(16)));
> > v4sf value;
> > void foo(void)
> > {
> >       value += (v4sf){1e9f,1e9f,1e9f,1e9f};
> > }
> > 
> > It is not clear if we have generated bad gimple or if the verifier is wrong.
> 
> Part of both, CONSTRUCTOR for VECTOR_TYPE with CONSTANT set is a valid
> invariant but really BIT_FIELD_REF <{ 1.0e+9, 1.0e+9, 1.0e+9, 1.0e+9 }, 64, 64>
> should simplify to just 1.0e+9.

It indeed doesn't look invalid from a first glance.  But shouldn't this
be VECTOR_CST instead of CONSTRUCTOR?  The question is of course what
the type of D.2000 is.  floats are certainly not 64bits at least.

Richard.


-- 


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


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