From 635a34e2be67d709088c31573732dfdf733e4cec Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Tue, 12 Sep 2023 10:43:23 -0700 Subject: [PATCH] MATCH: Simplify `(X % Y) < Y` pattern. This merges the two patterns to catch `(X % Y) < Y` and `Y > (X % Y)` into one by using :c on the comparison operator. It does not change any code generation nor anything else. It is more to allow for better maintainability of this pattern. OK? Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: PR tree-optimization/111345 * match.pd (`Y > (X % Y)`): Merge into ... (`(X % Y) < Y`): Pattern by adding `:c` on the comparison. --- gcc/match.pd | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/gcc/match.pd b/gcc/match.pd index 693638f8ca03..0d865d8295f1 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1486,14 +1486,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* X % Y is smaller than Y. */ (for cmp (lt ge) (simplify - (cmp (trunc_mod @0 @1) @1) + (cmp:c (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); }))) /* x | ~0 -> ~0 */ (simplify -- 2.47.2