https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113433
Bug ID: 113433 Summary: [12/13/14 Regression] Missed optimization for redundancy computation elimination Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: 652023330028 at smail dot nju.edu.cn Target Milestone: --- Hello, we noticed that maybe there is a missed optimization for redundancy computation elimination. Different from PR 113265, This code worked as expected until GCC-12. https://godbolt.org/z/nKh7zfsYn int c,d,e; void func(int y){ c=1-y; d=0; e=c/(d+(-c)); } GCC (trunk): func(int): mov DWORD PTR d[rip], 0 mov eax, 1 sub eax, edi sub edi, 1 cdq mov DWORD PTR c[rip], eax idiv edi mov DWORD PTR e[rip], eax ret Expected code (GCC-11.4): func(int): mov DWORD PTR d[rip], 0 mov eax, 1 mov DWORD PTR e[rip], -1 sub eax, edi mov DWORD PTR c[rip], eax ret Thank you very much for your time and effort! We look forward to hearing from you.