+++ This bug was initially created as a clone of Bug #33283 +++ [18:22] < apinski> /home/apinski/src/local/gcc/gcc/testsuite/gcc.c-torture/execute/930921-1.c:5: error: could not split insn^M [18:22] < apinski> new failure [18:23] < apinski> on ppc-linux-gnu [18:23] < apinski> between 127935 and 128000 [18:32] < Rhyolite> I guess it could be due to my predicate change [18:33] < apinski> this was after that [18:33] < Rhyolite> okay, phew [18:33] < apinski> paired support was inbetween that though [18:33] < Rhyolite> sigh [18:34] < Rhyolite> Revital said that she regression tested [18:34] < apinski> but also Sandra's regclass changes [18:34] < apinski> and some optabs changes [18:34] < apinski> so it could be either of those three And then from PR 33277 #3: Fromp http://gcc.gnu.org/ml/gcc-testresults/, looking at the results from "regress", it can be narrowed between 127961 (working) and 127997 (non working). Note that the last change of final.c is 127941 (outside the range). From an uneducated guess, I'l say 127989, but I may be completely wrong. And from #4: From looking closer to the changes, the scheduler changes is not likely because this happens at -O1 :) I am more thinking it was: 2007-08-31 Richard Sandiford <richard@codesourcery.com> Which changed optabs which is part of the expansion. The IV change could not have cause this issue as there is no loop in that function so the last change would be the optabs change. Note I am going to start cloning this bug until all the offtopic stuff stops being added.
Created attachment 14152 [details] Proposed patch It was indeed my fault, sorry. When doing a 32x32->64 multiplication, CONST_INTs are interpreted in the target mode (DImode). We were forcing such a CONST_INT into an SImode register without sign-extending it first. The attached patch seems to fix the testcase. I'm testing on x86_64-linux-gnu. Could someone with access to PowerPC GNU/Linux or Darwin please test it too? I could do before-and-after tests for powerpc-eabisim, but it'd probably take longer.
Looks ok on PowerPC Darwin. 16 passes. I tested on top of 128028.
The test case works: [karma] gcc/darwin_buildw% ../gcc4.3w/bin/gcc -O ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c: In function 'main': ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c:13: warning: incompatible implicit declaration of built-in function 'abort' ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c:14: warning: incompatible implicit declaration of built-in function 'exit' [karma] gcc/darwin_buildw% a.out [karma] gcc/darwin_buildw% ../gcc4.3w/bin/gcc -O -m64 ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c: In function 'main': ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c:13: warning: incompatible implicit declaration of built-in function 'abort' ../gcc-4.3-work/gcc/testsuite/gcc.c-torture/execute/930921-1.c:14: warning: incompatible implicit declaration of built-in function 'exit' [karma] gcc/darwin_buildw% a.out I am starting the gcc test suite, allow for 2+ hours. Thanks
Test Run By dominiq on Mon Sep 3 15:14:54 2007 Native configuration is powerpc-apple-darwin8 === gcc tests === Schedule of variations: unix XPASS: gcc.dg/20020103-1.c scan-assembler-not LC[0-9] FAIL: gcc.dg/builtins-61.c scan-tree-dump return 0.0 FAIL: gcc.dg/initpri1.c execution test FAIL: gcc.dg/memcpy-1.c scan-tree-dump-times nasty_local 0 FAIL: gcc.dg/ssp-2.c (test for excess errors) XPASS: gcc.dg/tree-ssa/update-threading.c scan-tree-dump-times Invalid sum 0 FAIL: gcc.dg/vect/section-anchors-pr27770.c (test for excess errors) FAIL: gcc.dg/vect/section-anchors-vect-69.c (test for excess errors) FAIL: gcc.dg/vect/section-anchors-vect-69.c scan-tree-dump-times Alignment of access forced using peeling 4 FAIL: gcc.target/powerpc/parity-1.c scan-assembler popcntb FAIL: gcc.target/powerpc/popcount-1.c scan-assembler popcntb FAIL: gcc.target/powerpc/stabs-attrib-vect-darwin.c scan-assembler .stabs.*vi:\\(0,[0-9]+\\)=@V === gcc Summary === # of expected passes 46198 # of unexpected failures 10 # of unexpected successes 2 # of expected failures 169 # of untested testcases 35 # of unsupported tests 412 /opt/gcc/darwin_buildw/gcc/xgcc version 4.3.0 20070903 (experimental) (GCC) That's the "normal" unexpected failures/successes on Darwin8.
Subject: Bug 33290 Author: rsandifo Date: Mon Sep 3 15:35:52 2007 New Revision: 128048 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128048 Log: gcc/ PR middle-end/33290 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs before forcing them into a register. Modified: trunk/gcc/ChangeLog trunk/gcc/optabs.c
Thanks to Andreas and Dominique for the testing. Now applied to 4.3. Sorry to everyone for the breakage.