https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115494
--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:ea1deefe54ea1c5182bfa179abf36469c9ec6974 commit r15-6945-gea1deefe54ea1c5182bfa179abf36469c9ec6974 Author: Richard Biener <rguent...@suse.de> Date: Wed Jan 15 14:31:57 2025 +0100 tree-optimization/115494 - PRE PHI translation and ranges When we PHI translate dependent expressions we keep SSA defs in place of the translated expression in case the expression itself did not change even though it's context did and thus the validity of ranges associated with it. That eventually leads to simplification errors given we violate the precondition that used SSA defs fed to vn_valueize are valid to use (including their associated ranges). The following makes sure to replace those with new representatives always, not only when the dependent expression translation changed it. The fix was originally discovered by Michael Morin. PR tree-optimization/115494 * tree-ssa-pre.cc (phi_translate_1): Always generate a representative for translated dependent expressions. * gcc.dg/torture/pr115494.c: New testcase. Co-Authored-By: Mikael Morin <mik...@gcc.gnu.org>