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

commit r15-5121-ga552a808f004c90d6f880f296041d674bdc27eda
Author: Tejas Belagod <tejas.bela...@arm.com>
Date:   Mon Sep 2 20:53:42 2024 +0530

    rtl: Validate subreg info when optimizing vec_select.
    
    When optimizing for NOPs in case of overlapping regs in VEC_SELECT 
expressions,
    validate subreg data before using simplify_subreg_regno.  There is no real
    SUBREG rtx here, but a pseudo subreg call to check if subregs are possible.
    
    gcc/ChangeLog:
    
            * rtlanal.cc (set_noop_p): Validate subreg constraints before 
checking
            for overlapping regs using simplify_subreg_regno.

Diff:
---
 gcc/rtlanal.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/rtlanal.cc b/gcc/rtlanal.cc
index cb0c0c0d7197..b58401e8309f 100644
--- a/gcc/rtlanal.cc
+++ b/gcc/rtlanal.cc
@@ -1686,6 +1686,7 @@ set_noop_p (const_rtx set)
        }
       return
        REG_CAN_CHANGE_MODE_P (REGNO (dst), GET_MODE (src0), GET_MODE (dst))
+       && validate_subreg (GET_MODE (dst), GET_MODE (src0), src0, offset)
        && simplify_subreg_regno (REGNO (src0), GET_MODE (src0),
                                  offset, GET_MODE (dst)) == (int) REGNO (dst);
     }

Reply via email to