https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122104
--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-14 branch has been updated by Jakub Jelinek <[email protected]>: https://gcc.gnu.org/g:f01fe9481e6655d2002bcb0dfb7953e19c2cefca commit r14-12092-gf01fe9481e6655d2002bcb0dfb7953e19c2cefca Author: Jakub Jelinek <[email protected]> Date: Sat Oct 4 17:06:16 2025 +0200 widening_mul: Reset flow sensitive info in maybe_optimize_guarding_check [PR122104] In PR95852 I've added an optimization where next to just pattern recognizing r = x * y; r / x != y or r = x * y; r / x == y as .MUL_OVERFLOW or negation thereof it also recognizes r = x * y; x && (r / x != y) or r = x * y; !x || (r / x == y) by optimizing the guarding condition to always true/false. The problem with that is that some value ranges recorded for the SSA_NAMEs in the formerly conditional, now unconditional basic block can be invalid. This patch fixes it by calling reset_flow_sensitive_info_in_bb if we optimize the guarding condition. 2025-10-04 Jakub Jelinek <[email protected]> PR tree-optimization/122104 * tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call reset_flow_sensitive_info_in_bb on bb when optimizing out the guarding condition. * gcc.target/i386/pr122104.c: New test. (cherry picked from commit 867f777cee9f44027a3724fbad266c5cfb3a311f)
