[Bug target/18701] [4.0 regression] mmix-knuth-mmixware gcc.c-torture/execute failures: 20010224-1.c, 20020216-1.c, 20040218-1.c, 20040709-2.c

hp at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Dec 20 01:55:00 GMT 2004


------- Additional Comments From hp at gcc dot gnu dot org  2004-12-20 01:55 -------
Combine changes:

(insn 13 12 15 0 (set (reg:HI 273)
        (mem:HI (plus:DI (reg/v/f:DI 269 [ y ])
                (const_int 2 [0x2])) [3 S2 A16])) 1 {movhi} (nil)
    (expr_list:REG_DEAD (reg/v/f:DI 269 [ y ])
        (nil)))
(insn 15 13 16 0 (set (reg:DI 275)
        (plus:DI (reg:DI 272)
            (subreg:DI (reg:HI 273) 0))) 7 {adddi3} (insn_list:REG_DEP_TRUE 12
(insn_list:REG_DEP_TRUE 13 (nil)))
    (expr_list:REG_DEAD (reg:DI 272)
        (expr_list:REG_DEAD (reg:HI 273)
            (nil))))

into:

(insn 15 13 16 0 (set (reg:DI 275)
        (plus:DI (reg:DI 272)
            (subreg:DI (mem:HI (plus:DI (reg/v/f:DI 269 [ y ])
                        (const_int 2 [0x2])) [3 S2 A16]) 0))) 7 {adddi3}
(insn_list:REG_DEP_TRUE 12 (nil))
    (expr_list:REG_DEAD (reg/v/f:DI 269 [ y ])
        (expr_list:REG_DEAD (reg:DI 272)
            (nil))))

which is already wrong because the address isn't valid in DImode
(STRICT_ALIGNMENT).  Likely a paradoxical subregs issue; they're allowed
if !INSN_SCHEDULING.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18701



More information about the Gcc-bugs mailing list