http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54850
Bug #: 54850 Summary: [4.8 Regression] FAIL: gcc.c-torture/execute/20041113-1.c execution, -Os Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: dang...@gcc.gnu.org Host: hppa64-hp-hpux11.11 Target: hppa64-hp-hpux11.11 Build: hppa64-hp-hpux11.11 Created attachment 28380 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28380 rtl dump Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c -fno-diagnostics-show-caret -w -Os -lm -o /test/gnu/gcc/objdir/gcc/testsuite/gcc/20041113-1.x5 (timeout = 300) spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c -fno-diagnostics-show-caret -w -Os -lm -o /test/gnu/gcc/objdir/gcc/testsuite/gcc/20041113-1.x5 PASS: gcc.c-torture/execute/20041113-1.c compilation, -Os Setting LD_LIBRARY_PATH to :/test/gnu/gcc/objdir/gcc::/test/gnu/gcc/objdir/gcc spawn [open ...] FAIL: gcc.c-torture/execute/20041113-1.c execution, -Os Function test is miscompiled: test: .PROC .CALLINFO FRAME=144,CALLS,SAVE_RP,ENTRY_GR=3 .ENTRY std %r2,-16(%r30) ldo 144(%r30),%r30 ldo -56(%r29),%r29 std %r4,-128(%r30) ldw 4(%r29),%r28 std %r26,-8(%r29) std %r25,0(%r29) std %r24,8(%r29) std %r23,16(%r29) std %r22,24(%r29) std %r21,32(%r29) std %r20,40(%r29) std %r19,48(%r29) cmpib,= 1,%r28,L$0002 std %r29,-136(%r30) ... The cmpib instruction fails because the "ldw 4(%r29),%r28" was incorrectly scheduled before the "std %r25,0(%r29)" instruction. This happens in the 20041113-1.c.223r.sched2 pass. In the previous pass, we had (note 5 1 50 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn/f 50 5 51 2 (set (mem:DI (plus:DI (reg/f:DI 30 %r30) (const_int -16 [0xfffffffffffffff0])) [0 S8 A64]) (reg:DI 2 %r2)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 2 %r2) (nil))) (insn/f 51 50 52 2 (set (reg/f:DI 30 %r30) (plus:DI (reg/f:DI 30 %r30) (const_int 144 [0x90]))) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 161 {*pa.md:4945} (nil)) (insn/f 52 51 53 2 (set (mem:DI (plus:DI (reg/f:DI 30 %r30) (const_int -128 [0xffffffffffffff80])) [0 S8 A64]) (reg:DI 4 %r4)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:4 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 4 %r4) (nil))) (note 53 52 8 2 NOTE_INSN_PROLOGUE_END) (insn 8 53 9 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -64 [0xffffffffffffffc0])) [0 S8 A64]) (reg:DI 26 %r26)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 26 %r26) (nil))) (insn 9 8 10 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -56 [0xffffffffffffffc8])) [0 S8 A64]) (reg:DI 25 %r25)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 25 %r25) (nil))) (insn 10 9 11 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -48 [0xffffffffffffffd0])) [0 S8 A64]) (reg:DI 24 %r24)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 24 %r24) (nil))) (insn 11 10 12 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -40 [0xffffffffffffffd8])) [0 S8 A64]) (reg:DI 23 %r23)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 23 %r23) (nil))) (insn 12 11 13 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -32 [0xffffffffffffffe0])) [0 S8 A64]) (reg:DI 22 %r22)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 22 %r22) (nil))) (insn 13 12 14 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -24 [0xffffffffffffffe8])) [0 S8 A64]) (reg:DI 21 %r21)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 21 %r21) (nil))) (insn 14 13 15 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -16 [0xfffffffffffffff0])) [0 S8 A64]) (reg:DI 20 %r20)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 20 %r20) (nil))) (insn 15 14 17 2 (set (mem:DI (plus:DI (reg/f:DI 29 %r29) (const_int -8 [0xfffffffffffffff8])) [0 S8 A64]) (reg:DI 19 %r19)) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (expr_list:REG_DEAD (reg:DI 19 %r19) (nil))) (insn 17 15 4 2 (set (reg/f:DI 29 %r29 [76]) (plus:DI (reg/f:DI 29 %r29) (const_int -56 [0xffffffffffffffc8]))) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 161 {*pa.md:4945} (nil)) (note 4 17 19 2 NOTE_INSN_FUNCTION_BEG) (insn 19 4 21 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 30 %r30) (const_int -136 [0xffffffffffffff78])) [2 MEM[(void * *)&ap]+0 S8 A64]) (reg/f:DI 29 %r29 [76])) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:7 121 {*pa.md:4105} (nil)) (insn 21 19 22 2 (set (reg:DI 28 %r28) (zero_extend:DI (mem:SI (plus:DI (reg/f:DI 29 %r29 [76]) (const_int 4 [0x4])) [3 MEM[(int *)ap.0_3 + 4B]+0 S4 A32]))) /test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20041113-1.c:8 134 {*pa.md:4637} (expr_list:REG_EQUIV (mem:SI (plus:DI (reg/f:DI 29 %r29 [76]) (const_int 4 [0x4])) [3 MEM[(int *)ap.0_3 + 4B]+0 S4 A32]) (nil))) The regression was introduced between revisions 191481 and 191764. Other similar fails are: FAIL: gcc.c-torture/execute/920501-8.c execution, -Os FAIL: gcc.c-torture/execute/980608-1.c execution, -Os FAIL: gcc.c-torture/execute/stdarg-4.c execution, -Os FAIL: gcc.c-torture/execute/va-arg-19.c execution, -Os