From a552a808f004c90d6f880f296041d674bdc27eda Mon Sep 17 00:00:00 2001 From: Tejas Belagod Date: Mon, 2 Sep 2024 20:53:42 +0530 Subject: [PATCH] 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. --- gcc/rtlanal.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/rtlanal.cc b/gcc/rtlanal.cc index cb0c0c0d719..b58401e8309 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); }