On Fri, Jun 10, 2016 at 01:34:07PM +0200, Richard Biener wrote: > On Fri, Jun 10, 2016 at 4:19 AM, kugan > <kugan.vivekanandara...@linaro.org> wrote: > > Hi, > > > > In PR71478, for vector negation of ssa produced by call stmt, we add vector > > (-1) and ssa to the ops list. However, in the place where we remove the (-1) > > from ops list, we failed to do this for vector integer. As a result, > > rewrite_expr_tree wrongly assumes that it is working with gimple_assign. > > > > Attached patch fixes the place where we remove the vector (-1). > > > > Regression tested on x86-64-linux-gnu with no new regressions. Regression > > testing on aarc64-linux-gnu is ongoing. Is this OK for trunk? > > Ok.
The testcase fails for me on i686-linux. Requiring vect_int outside of */vect/ is bogus, it assumes the default vectorization flags are used, which is not the case here. But furthermore, it makes zero sense to require it, vector_size attribute must be supported always, just without HW support lowered to scalar insns. -Wno-psabi -w are the standard options used to turn off psabi warnings on i?86 and powerpc. Tested on i686-linux and x86_64-linux, committed to trunk as obvious. 2016-06-13 Jakub Jelinek <ja...@redhat.com> PR middle-end/71478 * gcc.dg/pr71478.c: Remove dg-require-effective-target vect_int. Add -Wno-psabi -w to dg-options. --- gcc/testsuite/gcc.dg/pr71478.c (revision 237383) +++ gcc/testsuite/gcc.dg/pr71478.c (working copy) @@ -1,7 +1,6 @@ /* PR middle-end/71478 */ -/* { dg-require-effective-target vect_int } */ /* { dg-do compile } */ -/* { dg-options "-O3" } */ +/* { dg-options "-O3 -Wno-psabi -w" } */ typedef unsigned int __attribute__ ((vector_size (8))) uv2si; typedef int __attribute__ ((vector_size (8))) v2si; @@ -18,4 +17,3 @@ foo (void) uv2si j = k * __builtin_shuffle (z, z, (uv2si) {1, 3}); return k * j; } - Jakub