------- 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

Reply via email to