On Fri, Apr 07, 2017 at 12:04:16PM -0400, Vladimir Makarov wrote: > The following patch fixes > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70478 > > The patch was successfully bootstrapped and tested on x86-64/ppc64/arm64. > > Committed as rev. 246764. >
> Index: ChangeLog > =================================================================== > --- ChangeLog (revision 246763) > +++ ChangeLog (working copy) > @@ -1,3 +1,9 @@ > +2017-04-07 Vladimir Makarov <vmaka...@redhat.com> > + > + PR rtl-optimization/70478 > + * lra-constraints.c (process_alt_operands): Disfavor alternative > + insn memory operands. This has regressed: +UNRESOLVED: gfortran.dg/pr68627.f -O scan-assembler-not vbroadcastsd[ \\\\t]+%xmm[0-9]+, %ymm[0-9]+ +FAIL: gfortran.dg/pr68627.f -O (internal compiler error) +FAIL: gfortran.dg/pr68627.f -O (test for excess errors) on x86_64-linux, starting with r246764 there is ICE: Error: unable to find a register to spill pr68627.f:16:0: Error: this is the insn: (insn 202 1300 1177 12 (set (reg:V2DF 1306 [785]) (vec_concat:V2DF (reg:DF 1307 [orig:259 _282 ] [259]) (reg:DF 1421 [orig:263 _313 ] [263]))) "pr68627.f":11 2727 {vec_concatv2df} (expr_list:REG_DEAD (reg:DF 1421 [orig:263 _313 ] [263]) (expr_list:REG_DEAD (reg:DF 1307 [orig:259 _282 ] [259]) (nil)))) pr68627.f:16:0: internal compiler error: in assign_by_spills, at lra-assigns.c:1476 Jakub