http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46722
Summary: [4.6 Regression] Missed fma for x*x + y Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org double foo(double x, double y) { return x*x + y; } no longer generates fused multiply-add instructions. This is because we canonicalize x*x to pow(x, 2) which we do not recognize during FMA detection.