https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77519
Bug ID: 77519 Summary: [5/6/7 Regression] complex multiply / divide excess precision handling inverted Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: jsm28 at gcc dot gnu.org Target Milestone: --- libgcc complex multiply and divide are meant to eliminate excess precision from certain internal values by forcing them to memory in exactly those cases where the type has excess precision. But in https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01894.html I accidentally inverted the logic so that values get forced to memory in exactly the cases where it's not needed. (This is a pessimization in the no-excess-precision case, in principle could lead to bad results depending on code generation in the excess-precision case.)