https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119467
Bug ID: 119467 Summary: Missed optimization on wrapping builtin function Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mserdarsanli at gmail dot com Target Milestone: --- Compiling below wrapper function ``` double powi(double a, int x) { return __builtin_powi(a, x); } ``` generates assembly below: ``` powi(double, int): sub rsp, 8 call __powidf2 add rsp, 8 ret ``` while if I replace calleee with any other function, it generates better code with single jmp instruction: ``` extern double another_func(double a, int x); double powi(double a, int x) { return another_func(a, x); } ``` generates: ``` powi(double, int): jmp another_func(double, int) ```