https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111303
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jiu Fu Guo <guoji...@gcc.gnu.org>: https://gcc.gnu.org/g:55b22a6f630e76a0be913ced8bf1b017eaffd89b commit r14-4082-g55b22a6f630e76a0be913ced8bf1b017eaffd89b Author: Jiufu Guo <guoji...@linux.ibm.com> Date: Wed Sep 13 16:12:05 2023 +0800 use local range for one more pattern in match.pd For "get_global_range_query" SSA_NAME_RANGE_INFO can be queried. For "get_range_query", it could get more context-aware range info. And look at the implementation of "get_range_query", it returns global range if no local fun info. ATTRIBUTE_RETURNS_NONNULL inline range_query * get_range_query (const struct function *fun) { return (fun && fun->x_range_query) ? fun->x_range_query : &global_ranges; } So, using "get_range_query" would cover more case. For example, the test case of "pr111303.c". PR middle-end/111303 gcc/ChangeLog: * match.pd ((t * 2) / 2): Update pattern. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr111303.c: New test.