This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/81478] By default, GCC emits a function call for complex multiplication, should partially inline that


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81478

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-07-19
            Summary|By default, GCC emits a     |By default, GCC emits a
                   |function call for complex   |function call for complex
                   |multiplication              |multiplication, should
                   |                            |partially inline that
     Ever confirmed|0                           |1

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  It shouldn't be very difficult to do,
gcc/tree-complex.c:expand_complex_multiplication would need to emit if
(isnan(rr) || isnan(ri)) <expand_complex_libcall>.

Unless we want to optimize the corner case futher by skipping the
multiplication
in the libcall in which case we need a new entry in libgcc.

Note that the same optimization applies to division.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]