https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119945
Bug ID: 119945 Summary: [14/15/16 Regression] missed tail call due to IPA-VRP and different type but same mode Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Created attachment 61198 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61198&action=edit testcase Take the attached testcase. Starting in GCC 14, GCC won't tail call f inside g. But f1 is handled inside g1 just fine still. This is because the useless_type_conversion_p check inside find_tail_calls is stronger than what is included for process_assignment .