https://gcc.gnu.org/g:46d2ce70e458650eb253bbac0032184565660b87

commit r17-5313-g46d2ce70e458650eb253bbac0032184565660b87
Author: Roger Sayle <[email protected]>
Date:   Sun Oct 18 23:41:09 2026 +0100

    Remove experimental AOP rtx code
    
    The AOP rtx code was a placeholder to allow experiments in the RTL
    optimizers and backends to investigate whether capturing the semantics
    of any-or-plus operations could benefit code generation.  The intention
    was that there would be no functional change, and this code was purely
    to aid documentation and propose the spelling of a future operator.
    Unfortunately, RTL expansion of OPTAB_DC optabs on some targets can
    add REQ_EQUAL notes for multi-word operations or complex insn patterns,
    and these REG_EQUAL notes can end up causing AOP to be passed into
    simplify-rtx and elsewhere, where the necessary infrastructure isn't
    in place.  Indeed the AOP experiment was to investigate how invasive
    those changes would need to be (to evaluate ROI).
    
    This patch removes the AOP rtx code from rtl.def.
    It may or may not return at some point in the future.
    
    2026-10-18  Roger Sayle  <[email protected]>
    
    gcc/ChangeLog
            * optabs.def (aop_optab): Change from OPTAB_DC to OPTAB_C.
            * rtl.def (AOP): Remove/revert AOP rtx code.

Diff:
---
 gcc/optabs.def | 2 +-
 gcc/rtl.def    | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/gcc/optabs.def b/gcc/optabs.def
index 9d95f047cb50..faecb796d015 100644
--- a/gcc/optabs.def
+++ b/gcc/optabs.def
@@ -576,4 +576,4 @@ OPTAB_D (mask_len_strided_load_optab, 
"mask_len_strided_load_$a")
 OPTAB_D (mask_len_strided_store_optab, "mask_len_strided_store_$a")
 OPTAB_D (andn_optab, "andn$a3")
 OPTAB_D (iorn_optab, "iorn$a3")
-OPTAB_DC (aop_optab, "aop$a3", AOP)
+OPTAB_D (aop_optab, "aop$a3")
diff --git a/gcc/rtl.def b/gcc/rtl.def
index cec11d832078..ae757929de2f 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -490,7 +490,6 @@ DEF_RTL_EXPR(UMOD, "umod", "ee", RTX_BIN_ARITH)
 DEF_RTL_EXPR(AND, "and", "ee", RTX_COMM_ARITH)
 DEF_RTL_EXPR(IOR, "ior", "ee", RTX_COMM_ARITH)
 DEF_RTL_EXPR(XOR, "xor", "ee", RTX_COMM_ARITH)
-DEF_RTL_EXPR(AOP, "aop", "ee", RTX_COMM_ARITH)
 DEF_RTL_EXPR(NOT, "not", "e", RTX_UNARY)
 
 /* Operand:

Reply via email to