Jeffrey A Law writes: |> I'll note this doesn't occur in the mainline tree, but I have no idea if that |> is because the bug has actually been fixed or because we're just not triggering |> the problem anymore. I have been able to reproduce the bug with CVS-yesterday, but not right now. I think this is due to the ia32 merge, due to the change in the subdi3 pattern. With the yesterday's compiler the offending insn looked like this before global alloc: (insn 83 77 85 (parallel[ (set (reg/v:DI 26) (minus:DI (reg:DI 31) (reg:DI 38))) (clobber (scratch:SI)) ] ) 215 {subdi3} (insn_list 77 (nil)) (expr_list:REG_DEAD (reg:DI 38) (expr_list:REG_UNUSED (scratch:SI) (nil)))) with (reg:DI 31) being equivalent to the const_double. Today I'm getting this: (insn 251 74 80 (set (reg/v:DI 28) (reg:DI 35)) 66 {*movdi_2} (nil) (nil)) (insn 80 251 82 (parallel [ (set (reg/v:DI 28) (minus:DI (reg/v:DI 28) (reg:DI 41))) (clobber (reg:CC 17 flags)) ]) 179 {subdi3} (insn_list 74 (nil)) (expr_list:REG_DEAD (reg:DI 41) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) where (reg:DI 35) now contains the const_double. Andreas. -- Andreas Schwab "And now for something schwab@suse.de completely different." SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg