Executing on host: /home/dave/gnu/gcc-4.0/objdir/gcc/xgcc -B/home/dave/gnu/gcc-4 .0/objdir/gcc/ /home/dave/gnu/gcc-4.0/gcc/gcc/testsuite/gcc.dg/fold-abs-2.c -O 1 -fwrapv -fno-show-column -lm -o ./fold-abs-2.exe (timeout = 300) PASS: gcc.dg/fold-abs-2.c (test for excess errors) Setting LD_LIBRARY_PATH to :/home/dave/gnu/gcc-4.0/objdir/gcc::/home/dave/gnu/gc c-4.0/objdir/gcc:/usr/lib/debug FAIL: gcc.dg/fold-abs-2.c execution test
.globl f .type f, @function f: .PROC .CALLINFO FRAME=0,NO_CALLS .ENTRY bv %r0(%r2) ldi 1,%r28 .EXIT .PROCEND .size f, .-f So, f always returns 1. This appears to be a combine bug. We have the following in life: ;; Start of basic block 0, registers live: 3 [%r3] 26 [%r26] 30 [%r30] (note 9 2 6 0 [bb 0] NOTE_INSN_BASIC_BLOCK) (insn 6 9 7 0 (set (reg/v:SI 95 [ a ]) (reg:SI 26 %r26 [ a ])) 37 {*pa.md:2291} (nil) (expr_list:REG_DEAD (reg:SI 26 %r26 [ a ]) (expr_list:REG_EQUIV (mem/i:SI (plus:SI (reg/f:SI 3 %r3) (const_int -36 [0xffffffdc])) [0 a+0 S4 A32]) (nil)))) (note 7 6 11 0 NOTE_INSN_FUNCTION_BEG) (insn 11 7 12 0 (set (reg:SI 97) (abs:SI (reg/v:SI 95 [ a ]))) 22 {abssi2} (insn_list:REG_DEP_TRUE 6 (nil )) (expr_list:REG_DEAD (reg/v:SI 95 [ a ]) (nil))) (insn 12 11 13 0 (set (reg:SI 99) (not:SI (reg:SI 97))) 131 {one_cmplsi2} (insn_list:REG_DEP_TRUE 11 (nil) ) (expr_list:REG_DEAD (reg:SI 97) (nil))) (insn 13 12 17 0 (set (reg:SI 98) (lshiftrt:SI (reg:SI 99) (const_int 31 [0x1f]))) 178 {lshrsi3} (insn_list:REG_DEP_TRUE 12 (ni l)) (expr_list:REG_DEAD (reg:SI 99) (nil))) (note 17 13 20 0 NOTE_INSN_FUNCTION_END) (insn 20 17 26 0 (set (reg/i:SI 28 %r28 [ <result> ]) (reg:SI 98)) 37 {*pa.md:2291} (insn_list:REG_DEP_TRUE 13 (nil)) (expr_list:REG_DEAD (reg:SI 98) (nil))) (insn 26 20 0 0 (use (reg/i:SI 28 %r28 [ <result> ])) -1 (insn_list:REG_DEP_TRUE 20 (nil)) (nil)) ;; End of basic block 0, registers live: 3 [%r3] 28 [%r28] 30 [%r30] After combine, we have: ;; Start of basic block 0, registers live: 3 [%r3] 30 [%r30] (note 9 2 6 0 [bb 0] NOTE_INSN_BASIC_BLOCK) (note 6 9 7 0 NOTE_INSN_DELETED) (note 7 6 11 0 NOTE_INSN_FUNCTION_BEG) (note 11 7 12 0 NOTE_INSN_DELETED) (note 12 11 13 0 NOTE_INSN_DELETED) (note 13 12 17 0 NOTE_INSN_DELETED) (note 17 13 20 0 NOTE_INSN_FUNCTION_END) (insn 20 17 26 0 (set (reg/i:SI 28 %r28 [ <result> ]) (const_int 1 [0x1])) 37 {*pa.md:2291} (nil) (nil)) (insn 26 20 0 0 (use (reg/i:SI 28 %r28 [ <result> ])) -1 (insn_list:REG_DEP_TRUE 20 (nil)) (nil)) ;; End of basic block 0, registers live: 3 [%r3] 28 [%r28] 30 [%r30] -- Summary: FAIL: gcc.dg/fold-abs-2.c execution test Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: danglin at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: hppa*-*-* GCC host triplet: hppa*-*-* GCC target triplet: hppa*-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23105