https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110992
--- Comment #16 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Andrew Macleod <amacl...@gcc.gnu.org>: https://gcc.gnu.org/g:dd9ed951f4002419ceff744bbd87ae9b8affdaf4 commit r15-9008-gdd9ed951f4002419ceff744bbd87ae9b8affdaf4 Author: Andrew MacLeod <amacl...@redhat.com> Date: Wed Mar 26 10:34:42 2025 -0400 If the LHS does not contain zero, neither do multiply operands. Given ~[0,0] = op1 * op2, range-ops should determine that neither op1 nor op2 is zero. Add this to the operator_mult for op1_range. op2_range simply invokes op1_range, so both will be covered. PR tree-optimzation/110992.c PR tree-optimzation/119471.c gcc/ * range-op.cc (operator_mult::op1_range): If the LHS does not contain zero, return non-zero. gcc/testsuite/ * gcc.dg/pr110992.c: New. * gcc.dg/pr119471.c: New.