Use constrain_operands in order to check whether there exists a valid
alternative instead of extract_constrain_insn which ICEs in case no
alternative is found.

Bootstrapped and regtested on IBM zSystems.  Ok for mainline?

gcc/ChangeLog:

        * config/s390/predicates.md (execute_operation): Use
        constrain_operands instead of extract_constrain_insn in order to
        determine wheter there exists a valid alternative.
---
 gcc/config/s390/predicates.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/s390/predicates.md b/gcc/config/s390/predicates.md
index 404e8d87b63..d5d5a7cc0d3 100644
--- a/gcc/config/s390/predicates.md
+++ b/gcc/config/s390/predicates.md
@@ -479,9 +479,9 @@
   if (icode < 0)
     return false;
 
-  extract_constrain_insn (insn);
+  extract_insn (insn);
 
-  return which_alternative >= 0;
+  return constrain_operands (reload_completed, get_enabled_alternatives 
(insn)) == 1;
 })
 
 ;; Return true if OP is a store multiple operation.  It is known to be a
-- 
2.39.1

  • [PATCH] IBM zSystems: Fix pred... Stefan Schulze Frielinghaus via Gcc-patches

Reply via email to