------- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca 2007-02-04 17:06 ------- Subject: Re: FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90
> My patch just exposed a latent bug. Does this fail on the trunk also the same > way? If not can you trace to see where the difference in the IR between the > 4.2 branch and trunk show up? This is the rtl after expansion that's a problem: (insn 84 82 87 14 (set (reg:DI 76 [ equiv.1 ]) (const_int 4503599627370495 [0xfffffffffffff])) -1 (nil) (nil)) (insn 87 84 88 14 (set (reg:DF 32 %fr4) (subreg:DF (reg:DI 76 [ equiv.1 ]) 0)) -1 (nil) (nil)) After greg, we have: (note 84 82 239 11 NOTE_INSN_DELETED) (insn 239 84 87 11 (set (reg:DF 32 %fr4 [ equiv.1 ]) (mem/u/c/i:DF (symbol_ref/u:DI ("*L$C0007") [flags 0x2]) [0 S8 A64])) -1 (nil) (nil)) (insn 87 239 88 11 (set (reg:DF 32 %fr4 [ equiv.1 ]) (reg:DF 32 %fr4 [ equiv.1 ])) 122 {*pa.md:4332} (insn_list:REG_DEP_TRUE 84 (nil)) (expr_list:REG_DEAD (reg:DI 76 [ equiv.1 ]) (expr_list:REG_EQUAL (const_double:DF 2.22507385850720088902458687608585988765042311224096e-308 [0x0.fffffffffffffp-1022]) (nil)))) This is what 4.1.1 generated: (insn 85 83 86 12 (set (reg:DI 93) (const_int 4503599627370495 [0xfffffffffffff])) -1 (nil) (nil)) (insn 86 85 88 12 (set (mem/s/j/c:DI (reg/f:DI 62 virtual-stack-vars) [0 equiv.1.i+0 S8 A64]) (reg:DI 93)) -1 (nil) (nil)) (insn 88 86 91 12 (set (reg/f:DI 74 [ D.611 ]) (reg/f:DI 62 virtual-stack-vars)) -1 (nil) (nil)) (insn 91 88 92 12 (set (reg:DF 32 %fr4) (mem:DF (reg/f:DI 74 [ D.611 ]) [0 S8 A64])) -1 (nil) (nil)) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30634