http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49302
--- Comment #2 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2011-06-07 11:51:56 UTC --- I'll have a look. With -ffast-math, cabs is converted to sqrt(pow(rpart,2.0),pow(ipart,2.0)). Not sure yet why the pow calls aren't converted back to x*x form. We may have to restore just that transformation to the expander for builtin pow. Will dig deeper today.