[gcc/devel/jlaw/pr119422] Daniel's 119422 work + fixes for INTEGRAL_TYPE_P.
Jeff Law
law@gcc.gnu.org
Tue Mar 17 20:37:27 GMT 2026
https://gcc.gnu.org/g:d577f12c9f383acf1a66dbc36c04d251782956a4
commit d577f12c9f383acf1a66dbc36c04d251782956a4
Author: Jeff Law <jeffrey.law@oss.qualcomm.com>
Date: Thu Mar 12 21:09:08 2026 -0600
Daniel's 119422 work + fixes for INTEGRAL_TYPE_P.
Diff:
---
gcc/match.pd | 7 +++++++
gcc/testsuite/gcc.dg/tree-ssa/pr119422.c | 13 +++++++++++++
2 files changed, 20 insertions(+)
diff --git a/gcc/match.pd b/gcc/match.pd
index 1d6428bf7e53..ae5bb701e92f 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -5367,6 +5367,13 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
@0)))))
#endif
+/* PR119422: (bool >= A) >= A -> bool >= A; */
+(simplify
+ (ge (convert? (ge zero_one_valued_p@0 @1)) @1)
+ (if (INTEGRAL_TYPE_P (TREE_TYPE (@1))
+ && TYPE_UNSIGNED (TREE_TYPE (@1)))
+ (ge @0 @1)))
+
/* Rewrite an LROTATE_EXPR by a constant into an
RROTATE_EXPR by a new constant. */
(simplify
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr119422.c b/gcc/testsuite/gcc.dg/tree-ssa/pr119422.c
new file mode 100644
index 000000000000..780558b24b9d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr119422.c
@@ -0,0 +1,13 @@
+/* { dg-additional-options -O2 } */
+/* { dg-additional-options -fdump-tree-optimized } */
+
+typedef enum my_bool {
+ val0 = 0,
+ val1 = 1
+} my_bool;
+
+int gg (unsigned u, my_bool b)
+{
+ return u <= (u <= (unsigned)b);
+}
+/* { dg-final { scan-tree-dump-times " >= " 1 "optimized" } } */
More information about the Gcc-cvs
mailing list