https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70261
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- While the patch successfully bootstrapped/regtested on x86_64/i686, on powerpc64{,le} it bootstrapped, but still has numerous regressions: +FAIL: gcc.dg/vmx/gcc-bug-f.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/gcc-bug-f.c -Os (test for excess errors) +FAIL: gcc.dg/vmx/gcc-bug-g.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/gcc-bug-g.c -Os (test for excess errors) +FAIL: gcc.dg/vmx/ld-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ld-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ld-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ld-vsx-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ld-vsx-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ld-vsx-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ld-vsx.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ld-vsx.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ld-vsx.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ld.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ld.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ld.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/lde-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/lde-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/lde-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/lde.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/lde.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/lde.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ldl-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ldl-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ldl-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ldl-vsx-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ldl-vsx-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ldl-vsx-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ldl-vsx.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ldl-vsx.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ldl-vsx.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/ldl.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/ldl.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/ldl.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/merge-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/merge-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/merge-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/merge-vsx-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/merge-vsx-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/merge-vsx-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/merge-vsx.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/merge-vsx.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/merge-vsx.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/merge.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/merge.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/merge.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/mult-even-odd-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/mult-even-odd-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/mult-even-odd-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/mult-even-odd.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/mult-even-odd.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/mult-even-odd.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/pack-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/pack-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/pack-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/pack.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/pack.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/pack.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/perm-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/perm-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/perm-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/perm.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/perm.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/perm.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/splat-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/splat-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/splat-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/splat-vsx-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/splat-vsx-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/splat-vsx-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/splat-vsx.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/splat-vsx.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/splat-vsx.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/splat.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/splat.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/splat.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/unpack-be-order.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/unpack-be-order.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/unpack-be-order.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/unpack.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/unpack.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/unpack.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/varargs-1.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/varargs-1.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/varargs-1.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/varargs-2.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/varargs-2.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/varargs-2.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/varargs-3.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/varargs-3.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/varargs-3.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/varargs-4.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/varargs-4.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/varargs-4.c -Os compilation failed to produce executable +FAIL: gcc.dg/vmx/varargs-5.c -Os (internal compiler error) +FAIL: gcc.dg/vmx/varargs-5.c -Os (test for excess errors) +UNRESOLVED: gcc.dg/vmx/varargs-5.c -Os compilation failed to produce executable +FAIL: c-c++-common/torture/vector-shift.c -Os (internal compiler error) +FAIL: c-c++-common/torture/vector-shift.c -Os (test for excess errors) +UNRESOLVED: c-c++-common/torture/vector-shift.c -Os compilation failed to produce executable +FAIL: c-c++-common/torture/vshuf-v2di.c -Os (internal compiler error) +FAIL: c-c++-common/torture/vshuf-v2di.c -Os (test for excess errors) +FAIL: c-c++-common/torture/vshuf-v4si.c -Os (internal compiler error) +FAIL: c-c++-common/torture/vshuf-v4si.c -Os (test for excess errors) +FAIL: c-c++-common/torture/vshuf-v8hi.c -Os (internal compiler error) +FAIL: c-c++-common/torture/vshuf-v8hi.c -Os (test for excess errors) +FAIL: g++.dg/torture/vshuf-v2di.C -Os (internal compiler error) +FAIL: g++.dg/torture/vshuf-v2di.C -Os (test for excess errors) +UNRESOLVED: g++.dg/torture/vshuf-v2di.C -Os compilation failed to produce executable +FAIL: g++.dg/torture/vshuf-v4sf.C -Os (internal compiler error) +FAIL: g++.dg/torture/vshuf-v4sf.C -Os (test for excess errors) +UNRESOLVED: g++.dg/torture/vshuf-v4sf.C -Os compilation failed to produce executable +FAIL: g++.dg/torture/vshuf-v4si.C -Os (internal compiler error) +FAIL: g++.dg/torture/vshuf-v4si.C -Os (test for excess errors) +UNRESOLVED: g++.dg/torture/vshuf-v4si.C -Os compilation failed to produce executable +FAIL: g++.dg/torture/vshuf-v8hi.C -Os (internal compiler error) +FAIL: g++.dg/torture/vshuf-v8hi.C -Os (test for excess errors) +UNRESOLVED: g++.dg/torture/vshuf-v8hi.C -Os compilation failed to produce executable Compared to trunk before the rtlanal.c change, I'm seeing e.g. @@ -212,7 +212,8 @@ Dataflow summary: (expr_list:REG_FRAME_RELATED_EXPR (parallel [ (clobber (reg:DI 65 lr)) (use (symbol_ref:DI ("_savegpr1_14") [flags 0x1])) - (use (reg:DI 12 12)) + (use (plus:DI (reg/f:DI 1 1) + (const_int -144 [0xffffffffffffff70]))) (set/f (mem/c:DI (plus:DI (reg/f:DI 1 1) (const_int -288 [0xfffffffffffffee0])) [4 S8 A8]) (reg:DI 14 14)) and similar differences during pro_and_epilogue.