We do not fold for example __complex__ ( x, 0 ) * __complex__ ( 0, 1 )
or __complex__ ( x, 0 ) + __complex__ ( 0, y ) I have a partial patch. -- Summary: Operations with partly constant complex values not folded Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: middle-end AssignedTo: rguenth at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30172