https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111345
Bug ID: 111345 Summary: `X % Y is smaller than Y.` pattern could be simpified Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: internal-improvement Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Right now it is defined as: ``` (for cmp (lt ge) (simplify (cmp (trunc_mod @0 @1) @1) (if (TYPE_UNSIGNED (TREE_TYPE (@0))) { constant_boolean_node (cmp == LT_EXPR, type); }))) (for cmp (gt le) (simplify (cmp @1 (trunc_mod @0 @1)) (if (TYPE_UNSIGNED (TREE_TYPE (@0))) { constant_boolean_node (cmp == GT_EXPR, type); }))) ``` But it could be simplified to: ``` (for cmp (lt ge) (simplify (cmp:c (trunc_mod @0 @1) @1) (if (TYPE_UNSIGNED (TREE_TYPE (@0))) { constant_boolean_node (cmp == LT_EXPR, type); }))) ``` This simplifies the written code but the produced code is the same ...