[gcc r13-6415] simplify-rtx: Use byte in simplify_subreg rather than assume 0 offset

Andre Simoes Dias Vieira avieira@gcc.gnu.org
Thu Mar 2 14:12:34 GMT 2023


https://gcc.gnu.org/g:61407e018940633a9ca997bf3773f794faa25e23

commit r13-6415-g61407e018940633a9ca997bf3773f794faa25e23
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date:   Thu Mar 2 14:11:59 2023 +0000

    simplify-rtx: Use byte in simplify_subreg rather than assume 0 offset
    
    This patch fixes a missed review comment in an earlier patch using byte instead
    of a 0 offset.  Also improves the comment as suggested.
    
    gcc/ChangeLog:
    
            * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
            of constant 0 offset.

Diff:
---
 gcc/simplify-rtx.cc | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index 2c82256af66..3b33afa2461 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -7667,10 +7667,10 @@ simplify_context::simplify_subreg (machine_mode outermode, rtx op,
 	}
     }
 
-  /* Try simplifying a SUBREG expression of a non-integer OUTERMODE by using a
-     NEW_OUTERMODE of the same size instead, other simplifications rely on
-     integer to integer subregs and we'd potentially miss out on optimizations
-     otherwise.  */
+  /* If the outer mode is not integral, try taking a subreg with the equivalent
+     integer outer mode and then bitcasting the result.
+     Other simplifications rely on integer to integer subregs and we'd
+     potentially miss out on optimizations otherwise.  */
   if (known_gt (GET_MODE_SIZE (innermode),
 		GET_MODE_SIZE (outermode))
       && SCALAR_INT_MODE_P (innermode)
@@ -7680,7 +7680,7 @@ simplify_context::simplify_subreg (machine_mode outermode, rtx op,
     {
       rtx tem = simplify_subreg (int_outermode, op, innermode, byte);
       if (tem)
-	return simplify_gen_subreg (outermode, tem, int_outermode, 0);
+	return simplify_gen_subreg (outermode, tem, int_outermode, byte);
     }
 
   /* If OP is a vector comparison and the subreg is not changing the


More information about the Gcc-cvs mailing list