------- Comment #10 from rguenth at gcc dot gnu dot org 2008-02-01 11:58 ------- Reduced testcase:
extern __complex__ float clogf (__complex__ float); __complex__ float mycacoshf (__complex__ float x) { __complex__ float res; res = clogf (x); /* We have to use the positive branch. */ if (__real__ res < 0.0) { res = -res; asm ("" : : : "%ecx", "%ebx", "%esi", "%edi"); } return res; } -fgcse-after-reload removes the load of the clobbered %edx (it's life in the other path) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35045