https://gcc.gnu.org/g:cf4aaeb8d2192b14ad759953a6d5d699f9018b43

commit cf4aaeb8d2192b14ad759953a6d5d699f9018b43
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Thu Jun 5 17:11:35 2025 +0200

    suppression non_lvalue avec exact_div

Diff:
---
 gcc/match.pd | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/match.pd b/gcc/match.pd
index d695759d0f3e..ea9048e6afde 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -114,6 +114,12 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
   IFN_COND_LEN_FMIN IFN_COND_LEN_FMAX IFN_COND_LEN_COPYSIGN
   IFN_COND_LEN_AND IFN_COND_LEN_IOR IFN_COND_LEN_XOR
   IFN_COND_LEN_SHL IFN_COND_LEN_SHR)
+/* Binary operators without corresponding conditional operator.  */
+(define_operator_list EXTRA_BINARY
+  ceil_div ceil_mod
+  floor_div floor_mod
+  round_div round_mod
+  exact_div)
 
 /* Same for ternary operations.  */
 (define_operator_list UNCOND_TERNARY
@@ -287,7 +293,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
   (op @0)))
 
 /* Remove superfluous NON_LVALUE_EXPR in binary operators.  */
-(for op (UNCOND_BINARY tcc_comparison)
+(for op (UNCOND_BINARY EXTRA_BINARY tcc_comparison)
  (simplify (op (non_lvalue @0) @1)
   (op @0 @1))
  (simplify (op @0 (non_lvalue @1))

Reply via email to