On Mon, 20 May 2019 at 09:16, Richard Biener <rguent...@suse.de> wrote: > > On Mon, 20 May 2019, Christophe Lyon wrote: > > > On Fri, 17 May 2019 at 11:24, Richard Biener <rguent...@suse.de> wrote: > > > > > > > > > Bootstrap / testing in progress on x86_64-unknown-linux-gnu. > > > > > > Richard. > > > > > > 2019-05-17 Richard Biener <rguent...@suse.de> > > > > > > c/ > > > * gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM. > > > (c_parser_gimple_unary_expression): Likewise. > > > (c_parser_gimple_parentized_ternary_expression): New function. > > > > > > * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping > > > VEC_PERM_EXPR as __VEC_PERM with -gimple. > > > > > > * gcc.dg/gimplefe-41.c: New testcase. > > > > > > > Hi, > > > > This causes an ICE on arm: > > /gcc/testsuite/gcc.dg/gimplefe-41.c: In function '_mm_add_sd': > > /gcc/testsuite/gcc.dg/gimplefe-41.c:39:1: error: vectors with > > different element number found in vector permute expression > > __v2df > > __v2df > > vector(2) double > > __v2di > > z_6 = VEC_PERM_EXPR <x_4(D), _7, { 2, 1, 0, 0 }>; > > during IPA pass: *free_lang_data > > /gcc/testsuite/gcc.dg/gimplefe-41.c:39:1: internal compiler error: > > verify_gimple failed > > 0xc47110 verify_gimple_in_cfg(function*, bool) > > /gcc/tree-cfg.c:5396 > > 0xb0b673 execute_function_todo > > /gcc/passes.c:1963 > > 0xb0bf3d do_per_function > > /gcc/passes.c:1645 > > 0xb0c009 execute_todo > > /gcc/passes.c:2017 > > Hope this fixes it and the other issue. > > Tested on x86_64-unknown-linux-gnu, applied. > > Richard. > > 2019-05-20 Richard Biener <rguent...@suse.de> > > PR testsuite/90518 > * gcc.dg/gimplefe-40.c: Restrict to targets with appropriate > vector support. > * gcc.dg/gimplefe-41.c: Likewise. > Yes this fixes the problem on arm. Well, it avoids the ICE.
Christophe > Index: gcc/testsuite/gcc.dg/gimplefe-40.c > =================================================================== > --- gcc/testsuite/gcc.dg/gimplefe-40.c (revision 271394) > +++ gcc/testsuite/gcc.dg/gimplefe-40.c (working copy) > @@ -1,4 +1,4 @@ > -/* { dg-do compile { target int128 } } */ > +/* { dg-do compile { target { int128 && vect_float } } } */ > /* { dg-options "-fgimple -Wno-psabi -w" } */ > > typedef float v4sf __attribute__((vector_size(16))); > Index: gcc/testsuite/gcc.dg/gimplefe-41.c > =================================================================== > --- gcc/testsuite/gcc.dg/gimplefe-41.c (revision 271394) > +++ gcc/testsuite/gcc.dg/gimplefe-41.c (working copy) > @@ -1,8 +1,8 @@ > -/* { dg-do compile } */ > +/* { dg-do compile { target { vect_double && vect_long_long } } } */ > /* { dg-options "-fgimple -Wno-psabi -w" } */ > > typedef double __v2df __attribute__ ((__vector_size__ (16))); > -typedef unsigned long __v2di __attribute__ ((__vector_size__ (16))); > +typedef unsigned long long __v2di __attribute__ ((__vector_size__ (16))); > > __v2df __GIMPLE (ssa) > _mm_add_sd (__v2df x, __v2df y)