[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] Add some gcc_asserts for vector extract processing.

Martin Liska marxin@gcc.gnu.org
Mon Mar 30 10:44:41 GMT 2020


https://gcc.gnu.org/g:19e43cbce353b63a05c3b7c39d83a2e32c9f911f

commit 19e43cbce353b63a05c3b7c39d83a2e32c9f911f
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Mon Feb 3 15:50:39 2020 -0500

    Add some gcc_asserts for vector extract processing.
    
    2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
    
            * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
            gcc_asserts.

Diff:
---
 gcc/ChangeLog              | 5 +++++
 gcc/config/rs6000/rs6000.c | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ded82cd6fd..b66cec2b85f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2020-02-03  Michael Meissner  <meissner@linux.ibm.com>
+
+	* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
+	gcc_asserts.
+
 2020-02-03  Segher Boessenkool  <segher@kernel.crashing.org>
 
 	* config/rs6000/constraints.md: Improve documentation.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fc36bb6714b..8f72350f331 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6768,6 +6768,9 @@ rs6000_adjust_vec_address (rtx scalar_reg,
   rtx new_addr;
   bool valid_addr_p;
 
+  gcc_assert (!reg_mentioned_p (base_tmp, addr));
+  gcc_assert (!reg_mentioned_p (base_tmp, element));
+
   /* Vector addresses should not have PRE_INC, PRE_DEC, or PRE_MODIFY.  */
   gcc_assert (GET_RTX_CLASS (GET_CODE (addr)) != RTX_AUTOINC);
 
@@ -6777,6 +6780,10 @@ rs6000_adjust_vec_address (rtx scalar_reg,
     element_offset = GEN_INT (INTVAL (element) * scalar_size);
   else
     {
+      /* All insns should use the 'Q' constraint (address is a single register)
+	 if the element number is not a constant.  */
+      gcc_assert (REG_P (addr) || SUBREG_P (addr));
+
       int byte_shift = exact_log2 (scalar_size);
       gcc_assert (byte_shift >= 0);


More information about the Gcc-cvs mailing list