[gcc(refs/users/rguenth/heads/slp-reorg)] gcc, Arm: Fix no_cond issue introduced by MVE

Richard Biener rguenth@gcc.gnu.org
Mon Mar 23 15:56:39 GMT 2020


https://gcc.gnu.org/g:05009698eeb925d691a8ebb51539df8d8f28d849

commit 05009698eeb925d691a8ebb51539df8d8f28d849
Author: Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
Date:   Fri Mar 20 08:25:56 2020 +0000

    gcc, Arm: Fix no_cond issue introduced by MVE
    
    This was a matter of mistaken logic in (define_attr "conds" ..). This was
    setting the conds attribute for any neon instruction to no_cond which was
    messing up code generation.
    
    gcc/ChangeLog:
    2020-03-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    
            * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.

Diff:
---
 gcc/ChangeLog         | 4 ++++
 gcc/config/arm/arm.md | 8 ++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 44e320626a3..f7672cc275e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2020-03-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	* config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
+
 2020-03-19  Jan Hubicka  <hubicka@ucw.cz>
 
 	PR ipa/94202
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 5387f972f5a..b45109ed529 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -306,10 +306,10 @@
 	      (eq_attr "type" "call"))
 	 (const_string "clob")
          (if_then_else
-	  (ior (eq_attr "is_neon_type" "no")
-	       (eq_attr "is_mve_type" "no"))
-	  (const_string "nocond")
-	  (const_string "unconditional"))))
+	  (ior (eq_attr "is_neon_type" "yes")
+	       (eq_attr "is_mve_type" "yes"))
+	  (const_string "unconditional")
+	  (const_string "nocond"))))
 
 ; Predicable means that the insn can be conditionally executed based on
 ; an automatically added predicate (additional patterns are generated by


More information about the Gcc-cvs mailing list