The comparison results provided by the V_cmp_result/v_cmp_result
attribute were simply the corresponding integer vector.  We'd also
like to have easy access to the integer vector for SVE, but using
"cmp_result" would be confusing because SVE comparisons return
predicates instead of vectors.  This patch therefore renames the
attributes to the more general V_INT_EQUIV/v_int_equiv instead.

As to the capitalisation: there are already many iterators that use
all lowercase vs. all uppercase names to distinguish all lowercase
vs. all uppercase expansions (e.g. fcvt_target and FCVT_TARGET).
It's also the convention used for the built-in mode/MODE/code/CODE/etc.
attributes.  IMO those names are easier to read at a glance, rather than
relying on a single letter's difference.

Tested on aarch64-linux-gnu.  OK to install?

Richard


2017-08-22  Richard Sandiford  <richard.sandif...@linaro.org>
            Alan Hayward  <alan.hayw...@arm.com>
            David Sherwood  <david.sherw...@arm.com>

gcc/
        * config/aarch64/iterators.md (V_cmp_result): Rename to...
        (V_INT_EQUIV): ...this.
        (v_cmp_result): Rename to...
        (v_int_equiv): ...this.
        * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
        * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
        (copysign<mode>3): Likewise.
        (aarch64_simd_bsl<mode>_internal): Likewise.
        (aarch64_simd_bsl<mode>): Likewise.
        (vec_cmp<mode><mode>): Likewise.
        (vcond<mode><mode>): Likewise.
        (vcond<v_cmp_mixed><mode>): Likewise.
        (vcondu<mode><v_cmp_mixed>): Likewise.
        (aarch64_cm<optab><mode>): Likewise.
        (aarch64_cmtst<mode>): Likewise.
        (aarch64_fac<optab><mode>): Likewise.
        (vec_perm_const<mode>): Likewise.
        (vcond_mask_<mode><v_cmp_result>): Rename to...
        (vcond_mask_<mode><v_int_equiv>): ...this.
        (vec_cmp<mode><v_cmp_result>): Rename to...
        (vec_cmp<mode><v_int_equiv>): ...this.

Index: gcc/config/aarch64/iterators.md
===================================================================
--- gcc/config/aarch64/iterators.md     2017-08-22 10:11:04.727125997 +0100
+++ gcc/config/aarch64/iterators.md     2017-08-22 10:11:45.067177420 +0100
@@ -662,25 +662,25 @@ (define_mode_attr vwcore  [(V8QI "w") (V
 ;; Double vector types for ALLX.
 (define_mode_attr Vallxd [(QI "8b") (HI "4h") (SI "2s")])
 
-;; Mode of result of comparison operations.
-(define_mode_attr V_cmp_result [(V8QI "V8QI") (V16QI "V16QI")
-                               (V4HI "V4HI") (V8HI  "V8HI")
-                               (V2SI "V2SI") (V4SI  "V4SI")
-                               (DI   "DI")   (V2DI  "V2DI")
-                               (V4HF "V4HI") (V8HF  "V8HI")
-                               (V2SF "V2SI") (V4SF  "V4SI")
-                               (V2DF "V2DI") (DF    "DI")
-                               (SF   "SI")   (HF    "HI")])
+;; Mode with floating-point values replaced by like-sized integers.
+(define_mode_attr V_INT_EQUIV [(V8QI "V8QI") (V16QI "V16QI")
+                              (V4HI "V4HI") (V8HI  "V8HI")
+                              (V2SI "V2SI") (V4SI  "V4SI")
+                              (DI   "DI")   (V2DI  "V2DI")
+                              (V4HF "V4HI") (V8HF  "V8HI")
+                              (V2SF "V2SI") (V4SF  "V4SI")
+                              (V2DF "V2DI") (DF    "DI")
+                              (SF   "SI")   (HF    "HI")])
 
-;; Lower case mode of results of comparison operations.
-(define_mode_attr v_cmp_result [(V8QI "v8qi") (V16QI "v16qi")
-                               (V4HI "v4hi") (V8HI  "v8hi")
-                               (V2SI "v2si") (V4SI  "v4si")
-                               (DI   "di")   (V2DI  "v2di")
-                               (V4HF "v4hi") (V8HF  "v8hi")
-                               (V2SF "v2si") (V4SF  "v4si")
-                               (V2DF "v2di") (DF    "di")
-                               (SF   "si")])
+;; Lower case mode with floating-point values replaced by like-sized integers.
+(define_mode_attr v_int_equiv [(V8QI "v8qi") (V16QI "v16qi")
+                              (V4HI "v4hi") (V8HI  "v8hi")
+                              (V2SI "v2si") (V4SI  "v4si")
+                              (DI   "di")   (V2DI  "v2di")
+                              (V4HF "v4hi") (V8HF  "v8hi")
+                              (V2SF "v2si") (V4SF  "v4si")
+                              (V2DF "v2di") (DF    "di")
+                              (SF   "si")])
 
 ;; Mode for vector conditional operations where the comparison has
 ;; different type from the lhs.
Index: gcc/config/aarch64/aarch64.md
===================================================================
--- gcc/config/aarch64/aarch64.md       2017-08-22 10:11:04.726102783 +0100
+++ gcc/config/aarch64/aarch64.md       2017-08-22 10:11:45.067177420 +0100
@@ -5196,7 +5196,7 @@ (define_expand "xorsign<mode>3"
   "TARGET_FLOAT && TARGET_SIMD"
 {
 
-  machine_mode imode = <V_cmp_result>mode;
+  machine_mode imode = <V_INT_EQUIV>mode;
   rtx mask = gen_reg_rtx (imode);
   rtx op1x = gen_reg_rtx (imode);
   rtx op2x = gen_reg_rtx (imode);
@@ -5205,13 +5205,13 @@ (define_expand "xorsign<mode>3"
   emit_move_insn (mask, GEN_INT (trunc_int_for_mode (HOST_WIDE_INT_M1U << bits,
                                                     imode)));
 
-  emit_insn (gen_and<v_cmp_result>3 (op2x, mask,
-                                    lowpart_subreg (imode, operands[2],
-                                                    <MODE>mode)));
-  emit_insn (gen_xor<v_cmp_result>3 (op1x,
-                                    lowpart_subreg (imode, operands[1],
-                                                    <MODE>mode),
-                                    op2x));
+  emit_insn (gen_and<v_int_equiv>3 (op2x, mask,
+                                   lowpart_subreg (imode, operands[2],
+                                                   <MODE>mode)));
+  emit_insn (gen_xor<v_int_equiv>3 (op1x,
+                                   lowpart_subreg (imode, operands[1],
+                                                   <MODE>mode),
+                                   op2x));
   emit_move_insn (operands[0],
                  lowpart_subreg (<MODE>mode, op1x, imode));
   DONE;
Index: gcc/config/aarch64/aarch64-simd.md
===================================================================
--- gcc/config/aarch64/aarch64-simd.md  2017-08-22 10:11:04.726102783 +0100
+++ gcc/config/aarch64/aarch64-simd.md  2017-08-22 10:11:45.066232915 +0100
@@ -364,7 +364,7 @@ (define_expand "xorsign<mode>3"
   "TARGET_SIMD"
 {
 
-  machine_mode imode = <V_cmp_result>mode;
+  machine_mode imode = <V_INT_EQUIV>mode;
   rtx v_bitmask = gen_reg_rtx (imode);
   rtx op1x = gen_reg_rtx (imode);
   rtx op2x = gen_reg_rtx (imode);
@@ -375,11 +375,11 @@ (define_expand "xorsign<mode>3"
   int bits = GET_MODE_UNIT_BITSIZE (<MODE>mode) - 1;
 
   emit_move_insn (v_bitmask,
-                 aarch64_simd_gen_const_vector_dup (<V_cmp_result>mode,
+                 aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
                                                     HOST_WIDE_INT_M1U << 
bits));
 
-  emit_insn (gen_and<v_cmp_result>3 (op2x, v_bitmask, arg2));
-  emit_insn (gen_xor<v_cmp_result>3 (op1x, arg1, op2x));
+  emit_insn (gen_and<v_int_equiv>3 (op2x, v_bitmask, arg2));
+  emit_insn (gen_xor<v_int_equiv>3 (op1x, arg1, op2x));
   emit_move_insn (operands[0],
                  lowpart_subreg (<MODE>mode, op1x, imode));
   DONE;
@@ -392,11 +392,11 @@ (define_expand "copysign<mode>3"
    (match_operand:VHSDF 2 "register_operand")]
   "TARGET_FLOAT && TARGET_SIMD"
 {
-  rtx v_bitmask = gen_reg_rtx (<V_cmp_result>mode);
+  rtx v_bitmask = gen_reg_rtx (<V_INT_EQUIV>mode);
   int bits = GET_MODE_UNIT_BITSIZE (<MODE>mode) - 1;
 
   emit_move_insn (v_bitmask,
-                 aarch64_simd_gen_const_vector_dup (<V_cmp_result>mode,
+                 aarch64_simd_gen_const_vector_dup (<V_INT_EQUIV>mode,
                                                     HOST_WIDE_INT_M1U << 
bits));
   emit_insn (gen_aarch64_simd_bsl<mode> (operands[0], v_bitmask,
                                         operands[2], operands[1]));
@@ -2319,10 +2319,10 @@ (define_insn "aarch64_simd_bsl<mode>_int
        (xor:VSDQ_I_DI
           (and:VSDQ_I_DI
             (xor:VSDQ_I_DI
-              (match_operand:<V_cmp_result> 3 "register_operand" "w,0,w")
+              (match_operand:<V_INT_EQUIV> 3 "register_operand" "w,0,w")
               (match_operand:VSDQ_I_DI 2 "register_operand" "w,w,0"))
             (match_operand:VSDQ_I_DI 1 "register_operand" "0,w,w"))
-         (match_dup:<V_cmp_result> 3)
+         (match_dup:<V_INT_EQUIV> 3)
        ))]
   "TARGET_SIMD"
   "@
@@ -2357,7 +2357,7 @@ (define_insn "*aarch64_simd_bsl<mode>_al
 
 (define_expand "aarch64_simd_bsl<mode>"
   [(match_operand:VALLDIF 0 "register_operand")
-   (match_operand:<V_cmp_result> 1 "register_operand")
+   (match_operand:<V_INT_EQUIV> 1 "register_operand")
    (match_operand:VALLDIF 2 "register_operand")
    (match_operand:VALLDIF 3 "register_operand")]
  "TARGET_SIMD"
@@ -2366,26 +2366,26 @@ (define_expand "aarch64_simd_bsl<mode>"
   rtx tmp = operands[0];
   if (FLOAT_MODE_P (<MODE>mode))
     {
-      operands[2] = gen_lowpart (<V_cmp_result>mode, operands[2]);
-      operands[3] = gen_lowpart (<V_cmp_result>mode, operands[3]);
-      tmp = gen_reg_rtx (<V_cmp_result>mode);
+      operands[2] = gen_lowpart (<V_INT_EQUIV>mode, operands[2]);
+      operands[3] = gen_lowpart (<V_INT_EQUIV>mode, operands[3]);
+      tmp = gen_reg_rtx (<V_INT_EQUIV>mode);
     }
-  operands[1] = gen_lowpart (<V_cmp_result>mode, operands[1]);
-  emit_insn (gen_aarch64_simd_bsl<v_cmp_result>_internal (tmp,
-                                                         operands[1],
-                                                         operands[2],
-                                                         operands[3]));
+  operands[1] = gen_lowpart (<V_INT_EQUIV>mode, operands[1]);
+  emit_insn (gen_aarch64_simd_bsl<v_int_equiv>_internal (tmp,
+                                                        operands[1],
+                                                        operands[2],
+                                                        operands[3]));
   if (tmp != operands[0])
     emit_move_insn (operands[0], gen_lowpart (<MODE>mode, tmp));
 
   DONE;
 })
 
-(define_expand "vcond_mask_<mode><v_cmp_result>"
+(define_expand "vcond_mask_<mode><v_int_equiv>"
   [(match_operand:VALLDI 0 "register_operand")
    (match_operand:VALLDI 1 "nonmemory_operand")
    (match_operand:VALLDI 2 "nonmemory_operand")
-   (match_operand:<V_cmp_result> 3 "register_operand")]
+   (match_operand:<V_INT_EQUIV> 3 "register_operand")]
   "TARGET_SIMD"
 {
   /* If we have (a = (P) ? -1 : 0);
@@ -2396,7 +2396,7 @@ (define_expand "vcond_mask_<mode><v_cmp_
   /* Similarly, (a = (P) ? 0 : -1) is just inverting the generated mask.  */
   else if (operands[1] == CONST0_RTX (<MODE>mode)
           && operands[2] == CONSTM1_RTX (<MODE>mode))
-    emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[3]));
+    emit_insn (gen_one_cmpl<v_int_equiv>2 (operands[0], operands[3]));
   else
     {
       if (!REG_P (operands[1]))
@@ -2478,7 +2478,7 @@ (define_expand "vec_cmp<mode><mode>"
     case NE:
       /* Handle NE as !EQ.  */
       emit_insn (gen_aarch64_cmeq<mode> (mask, operands[2], operands[3]));
-      emit_insn (gen_one_cmpl<v_cmp_result>2 (mask, mask));
+      emit_insn (gen_one_cmpl<v_int_equiv>2 (mask, mask));
       break;
 
     case EQ:
@@ -2492,8 +2492,8 @@ (define_expand "vec_cmp<mode><mode>"
   DONE;
 })
 
-(define_expand "vec_cmp<mode><v_cmp_result>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand")
+(define_expand "vec_cmp<mode><v_int_equiv>"
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
        (match_operator 1 "comparison_operator"
            [(match_operand:VDQF 2 "register_operand")
             (match_operand:VDQF 3 "nonmemory_operand")]))]
@@ -2501,7 +2501,7 @@ (define_expand "vec_cmp<mode><v_cmp_resu
 {
   int use_zero_form = 0;
   enum rtx_code code = GET_CODE (operands[1]);
-  rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
+  rtx tmp = gen_reg_rtx (<V_INT_EQUIV>mode);
 
   rtx (*comparison) (rtx, rtx, rtx) = NULL;
 
@@ -2587,7 +2587,7 @@ (define_expand "vec_cmp<mode><v_cmp_resu
         a   NE b -> !(a EQ b)  */
       gcc_assert (comparison != NULL);
       emit_insn (comparison (operands[0], operands[2], operands[3]));
-      emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0]));
+      emit_insn (gen_one_cmpl<v_int_equiv>2 (operands[0], operands[0]));
       break;
 
     case LT:
@@ -2612,8 +2612,8 @@ (define_expand "vec_cmp<mode><v_cmp_resu
       emit_insn (gen_aarch64_cmgt<mode> (operands[0],
                                         operands[2], operands[3]));
       emit_insn (gen_aarch64_cmgt<mode> (tmp, operands[3], operands[2]));
-      emit_insn (gen_ior<v_cmp_result>3 (operands[0], operands[0], tmp));
-      emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0]));
+      emit_insn (gen_ior<v_int_equiv>3 (operands[0], operands[0], tmp));
+      emit_insn (gen_one_cmpl<v_int_equiv>2 (operands[0], operands[0]));
       break;
 
     case UNORDERED:
@@ -2622,15 +2622,15 @@ (define_expand "vec_cmp<mode><v_cmp_resu
       emit_insn (gen_aarch64_cmgt<mode> (tmp, operands[2], operands[3]));
       emit_insn (gen_aarch64_cmge<mode> (operands[0],
                                         operands[3], operands[2]));
-      emit_insn (gen_ior<v_cmp_result>3 (operands[0], operands[0], tmp));
-      emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0]));
+      emit_insn (gen_ior<v_int_equiv>3 (operands[0], operands[0], tmp));
+      emit_insn (gen_one_cmpl<v_int_equiv>2 (operands[0], operands[0]));
       break;
 
     case ORDERED:
       emit_insn (gen_aarch64_cmgt<mode> (tmp, operands[2], operands[3]));
       emit_insn (gen_aarch64_cmge<mode> (operands[0],
                                         operands[3], operands[2]));
-      emit_insn (gen_ior<v_cmp_result>3 (operands[0], operands[0], tmp));
+      emit_insn (gen_ior<v_int_equiv>3 (operands[0], operands[0], tmp));
       break;
 
     default:
@@ -2662,7 +2662,7 @@ (define_expand "vcond<mode><mode>"
          (match_operand:VALLDI 2 "nonmemory_operand")))]
   "TARGET_SIMD"
 {
-  rtx mask = gen_reg_rtx (<V_cmp_result>mode);
+  rtx mask = gen_reg_rtx (<V_INT_EQUIV>mode);
   enum rtx_code code = GET_CODE (operands[3]);
 
   /* NE is handled as !EQ in vec_cmp patterns, we can explicitly invert
@@ -2674,10 +2674,10 @@ (define_expand "vcond<mode><mode>"
                                    operands[4], operands[5]);
       std::swap (operands[1], operands[2]);
     }
-  emit_insn (gen_vec_cmp<mode><v_cmp_result> (mask, operands[3],
-                                             operands[4], operands[5]));
-  emit_insn (gen_vcond_mask_<mode><v_cmp_result> (operands[0], operands[1],
-                                                 operands[2], mask));
+  emit_insn (gen_vec_cmp<mode><v_int_equiv> (mask, operands[3],
+                                            operands[4], operands[5]));
+  emit_insn (gen_vcond_mask_<mode><v_int_equiv> (operands[0], operands[1],
+                                                operands[2], mask));
 
   DONE;
 })
@@ -2692,7 +2692,7 @@ (define_expand "vcond<v_cmp_mixed><mode>
          (match_operand:<V_cmp_mixed> 2 "nonmemory_operand")))]
   "TARGET_SIMD"
 {
-  rtx mask = gen_reg_rtx (<V_cmp_result>mode);
+  rtx mask = gen_reg_rtx (<V_INT_EQUIV>mode);
   enum rtx_code code = GET_CODE (operands[3]);
 
   /* NE is handled as !EQ in vec_cmp patterns, we can explicitly invert
@@ -2704,9 +2704,9 @@ (define_expand "vcond<v_cmp_mixed><mode>
                                    operands[4], operands[5]);
       std::swap (operands[1], operands[2]);
     }
-  emit_insn (gen_vec_cmp<mode><v_cmp_result> (mask, operands[3],
-                                             operands[4], operands[5]));
-  emit_insn (gen_vcond_mask_<v_cmp_mixed><v_cmp_result> (
+  emit_insn (gen_vec_cmp<mode><v_int_equiv> (mask, operands[3],
+                                            operands[4], operands[5]));
+  emit_insn (gen_vcond_mask_<v_cmp_mixed><v_int_equiv> (
                                                operands[0], operands[1],
                                                operands[2], mask));
 
@@ -2737,8 +2737,8 @@ (define_expand "vcondu<mode><mode>"
     }
   emit_insn (gen_vec_cmp<mode><mode> (mask, operands[3],
                                      operands[4], operands[5]));
-  emit_insn (gen_vcond_mask_<mode><v_cmp_result> (operands[0], operands[1],
-                                                 operands[2], mask));
+  emit_insn (gen_vcond_mask_<mode><v_int_equiv> (operands[0], operands[1],
+                                                operands[2], mask));
   DONE;
 })
 
@@ -2752,7 +2752,7 @@ (define_expand "vcondu<mode><v_cmp_mixed
          (match_operand:VDQF 2 "nonmemory_operand")))]
   "TARGET_SIMD"
 {
-  rtx mask = gen_reg_rtx (<V_cmp_result>mode);
+  rtx mask = gen_reg_rtx (<V_INT_EQUIV>mode);
   enum rtx_code code = GET_CODE (operands[3]);
 
   /* NE is handled as !EQ in vec_cmp patterns, we can explicitly invert
@@ -2767,8 +2767,8 @@ (define_expand "vcondu<mode><v_cmp_mixed
   emit_insn (gen_vec_cmp<v_cmp_mixed><v_cmp_mixed> (
                                                  mask, operands[3],
                                                  operands[4], operands[5]));
-  emit_insn (gen_vcond_mask_<mode><v_cmp_result> (operands[0], operands[1],
-                                                 operands[2], mask));
+  emit_insn (gen_vcond_mask_<mode><v_int_equiv> (operands[0], operands[1],
+                                                operands[2], mask));
   DONE;
 })
 
@@ -4208,9 +4208,9 @@ (define_insn "aarch64_<sur>q<r>shr<u>n_n
 ;; have different ideas of what should be passed to this pattern.
 
 (define_insn "aarch64_cm<optab><mode>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w,w")
-       (neg:<V_cmp_result>
-         (COMPARISONS:<V_cmp_result>
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w,w")
+       (neg:<V_INT_EQUIV>
+         (COMPARISONS:<V_INT_EQUIV>
            (match_operand:VDQ_I 1 "register_operand" "w,w")
            (match_operand:VDQ_I 2 "aarch64_simd_reg_or_zero" "w,ZDz")
          )))]
@@ -4273,9 +4273,9 @@ (define_insn "*aarch64_cm<optab>di"
 ;; cm(hs|hi)
 
 (define_insn "aarch64_cm<optab><mode>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
-       (neg:<V_cmp_result>
-         (UCOMPARISONS:<V_cmp_result>
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
+       (neg:<V_INT_EQUIV>
+         (UCOMPARISONS:<V_INT_EQUIV>
            (match_operand:VDQ_I 1 "register_operand" "w")
            (match_operand:VDQ_I 2 "register_operand" "w")
          )))]
@@ -4340,14 +4340,14 @@ (define_insn "*aarch64_cm<optab>di"
 ;; plus (eq (and x y) 0) -1.
 
 (define_insn "aarch64_cmtst<mode>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
-       (plus:<V_cmp_result>
-         (eq:<V_cmp_result>
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
+       (plus:<V_INT_EQUIV>
+         (eq:<V_INT_EQUIV>
            (and:VDQ_I
              (match_operand:VDQ_I 1 "register_operand" "w")
              (match_operand:VDQ_I 2 "register_operand" "w"))
            (match_operand:VDQ_I 3 "aarch64_simd_imm_zero"))
-         (match_operand:<V_cmp_result> 4 "aarch64_simd_imm_minus_one")))
+         (match_operand:<V_INT_EQUIV> 4 "aarch64_simd_imm_minus_one")))
   ]
   "TARGET_SIMD"
   "cmtst\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
@@ -4408,9 +4408,9 @@ (define_insn "*aarch64_cmtstdi"
 ;; fcm(eq|ge|gt|le|lt)
 
 (define_insn "aarch64_cm<optab><mode>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w,w")
-       (neg:<V_cmp_result>
-         (COMPARISONS:<V_cmp_result>
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w,w")
+       (neg:<V_INT_EQUIV>
+         (COMPARISONS:<V_INT_EQUIV>
            (match_operand:VHSDF_HSDF 1 "register_operand" "w,w")
            (match_operand:VHSDF_HSDF 2 "aarch64_simd_reg_or_zero" "w,YDz")
          )))]
@@ -4426,9 +4426,9 @@ (define_insn "aarch64_cm<optab><mode>"
 ;; generating fac(ge|gt).
 
 (define_insn "aarch64_fac<optab><mode>"
-  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
-       (neg:<V_cmp_result>
-         (FAC_COMPARISONS:<V_cmp_result>
+  [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
+       (neg:<V_INT_EQUIV>
+         (FAC_COMPARISONS:<V_INT_EQUIV>
            (abs:VHSDF_HSDF
              (match_operand:VHSDF_HSDF 1 "register_operand" "w"))
            (abs:VHSDF_HSDF
@@ -5130,7 +5130,7 @@ (define_expand "vec_perm_const<mode>"
   [(match_operand:VALL_F16 0 "register_operand")
    (match_operand:VALL_F16 1 "register_operand")
    (match_operand:VALL_F16 2 "register_operand")
-   (match_operand:<V_cmp_result> 3)]
+   (match_operand:<V_INT_EQUIV> 3)]
   "TARGET_SIMD"
 {
   if (aarch64_expand_vec_perm_const (operands[0], operands[1],

Reply via email to