https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115439

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think something like this:
```
[apinski@xeond2 arm]$ git diff mve.md
diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md
index 9fe51298cdc..8af4797e935 100644
--- a/gcc/config/arm/mve.md
+++ b/gcc/config/arm/mve.md
@@ -6897,6 +6897,12 @@ (define_expand "vcond_mask_<mode><MVE_vpred>"
          (match_operand:MVE_VLD_ST 2 "s_register_operand")))]
   "TARGET_HAVE_MVE"
 {
+  if (!register_operand (operands[3], <MVE_VPRED>mode))
+    operands[3] = force_reg (operands[3]);
+  if (!register_operand (operands[1], <MODE>mode))
+    operands[1] = force_reg (operands[1]);
+  if (!register_operand (operands[2], <MODE>mode))
+    operands[1] = force_reg (operands[2]);
   switch (GET_MODE_CLASS (<MODE>mode))
     {
       case MODE_VECTOR_INT:

```
Signed-off-by: Andrew Pinski  <quic_apin...@quicinc.com>

Reply via email to