On Mon, Sep 26, 2011 at 4:25 PM, Richard Guenther <richard.guent...@gmail.com> wrote: > On Wed, Sep 7, 2011 at 5:06 PM, Joseph S. Myers <jos...@codesourcery.com> > wrote: >> This looks like it has the same issue with maybe needing to use >> TYPE_MAIN_VARIANT in type comparisons as the shuffle patch. > > I don't think so, we move qualifiers to the vector type from the element type > in make_vector_type and the tests only look at the component type. > > I am re-testing the patch currently and will commit it if that succeeds.
Unfortunately gcc.c-torture/execute/vector-compare-1.c fails with -m32 for vector (2, double) d0; vector (2, double) d1; vector (2, long) idres; d0 = (vector (2, double)){(double)argc, 10.}; d1 = (vector (2, double)){0., (double)-23}; idres = (d0 > d1); as appearantly the type we chose to assign to (d0 > d1) is different from that of idres: /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.c-torture/execute/vector-compare-1.c:118:5: error: incompatible types when assigning to type '__vector(2) long int' from type '__vector(2) long long int'^M Adjusting it to vector (2, long long) otoh yields, for -m64: /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.c-torture/execute/vector-compare-1.c:118:5: error: incompatible types when assigning to type '__vector(2) long long int' from type '__vector(2) long int' But those two types are at least compatible from their modes. Joseph, should we accept mode-compatible types in assignments or maybe transparently convert them? Thanks, Richard. > Thanks, > Richard. > >> -- >> Joseph S. Myers >> jos...@codesourcery.com >> >