[GCC][PATCH][ARM]: Change arm constraint name from "e" to "Te".
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Mon, 27 Apr 2020 15:50:58 +0000 (16:50 +0100)
committerSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Mon, 27 Apr 2020 15:57:17 +0000 (16:57 +0100)
This patches changes the constraint "e" to "Te".

gcc/ChangeLog:

2020-04-24  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

* config/arm/constraints.md (e): Remove constraint.
(Te): Define constraint.
* config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
operand 0 from "e" to "Te".
(vaddvaq_<supf><mode>): Likewise.
(vaddvq_p_<supf><mode>): Likewise.
(vmladavq_<supf><mode>): Likewise.
(vmladavxq_s<mode>): Likewise.
(vmlsdavq_s<mode>): Likewise.
(vmlsdavxq_s<mode>): Likewise.
(vaddvaq_p_<supf><mode>): Likewise.
(vmladavaq_<supf><mode>): Likewise.
(vmladavq_p_<supf><mode>): Likewise.
(vmladavxq_p_s<mode>): Likewise.
(vmlsdavq_p_s<mode>): Likewise.
(vmlsdavxq_p_s<mode>): Likewise.
(vmlsdavaxq_s<mode>): Likewise.
(vmlsdavaq_s<mode>): Likewise.
(vmladavaxq_s<mode>): Likewise.
(vmladavaq_p_<supf><mode>): Likewise.
(vmladavaxq_p_s<mode>): Likewise.
(vmlsdavaq_p_s<mode>): Likewise.
(vmlsdavaxq_p_s<mode>): Likewise.

gcc/ChangeLog
gcc/config/arm/constraints.md
gcc/config/arm/mve.md

index 0027071f7178113f658b88d33f58024f852516cf..ecffa447903701e90636042216e36131eb088134 100644 (file)
@@ -1,3 +1,29 @@
+2020-04-27  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+
+       * config/arm/constraints.md (e): Remove constraint.
+       (Te): Define constraint.
+       * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
+       operand 0 from "e" to "Te".
+       (vaddvaq_<supf><mode>): Likewise.
+       (vaddvq_p_<supf><mode>): Likewise.
+       (vmladavq_<supf><mode>): Likewise.
+       (vmladavxq_s<mode>): Likewise.
+       (vmlsdavq_s<mode>): Likewise.
+       (vmlsdavxq_s<mode>): Likewise.
+       (vaddvaq_p_<supf><mode>): Likewise.
+       (vmladavaq_<supf><mode>): Likewise.
+       (vmladavq_p_<supf><mode>): Likewise.
+       (vmladavxq_p_s<mode>): Likewise.
+       (vmlsdavq_p_s<mode>): Likewise.
+       (vmlsdavxq_p_s<mode>): Likewise.
+       (vmlsdavaxq_s<mode>): Likewise.
+       (vmlsdavaq_s<mode>): Likewise.
+       (vmladavaxq_s<mode>): Likewise.
+       (vmladavaq_p_<supf><mode>): Likewise.
+       (vmladavaxq_p_s<mode>): Likewise.
+       (vmlsdavaq_p_s<mode>): Likewise.
+       (vmlsdavaxq_p_s<mode>): Likewise.
+
 2020-04-27  Andre Vieira  <andre.simoesdiasvieira@arm.com>
 
        * config/arm/arm.c (output_move_neon): Only get the first operand if
index 41a85e2713b59f75f0b191b6be03a7ac8f6e321e..fed6c7c84032dd8aba45142b59b980b4a6240d6d 100644 (file)
@@ -32,7 +32,7 @@
 
 ;; The following multi-letter normal constraints have been used:
 ;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, DN, Dm, Dl, DL, Do, Dv, Dy, Di,
-;;                      Dt, Dp, Dz, Tu
+;;                      Dt, Dp, Dz, Tu, Te
 ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe
 ;; in Thumb-2 state: Ha, Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py, Pz, Rd, Rf, Rb, Ra,
 ;;                  Rg, Ri
@@ -50,8 +50,8 @@
 (define_register_constraint "Uf" "TARGET_HAVE_MVE ? VFPCC_REG : NO_REGS"
   "MVE FPCCR register")
 
-(define_register_constraint "e" "TARGET_HAVE_MVE ? EVEN_REG : NO_REGS"
-  "MVE EVEN registers @code{r0}, @code{r2}, @code{r4}, @code{r6}, @code{r8},
+(define_register_constraint "Te" "TARGET_HAVE_MVE ? EVEN_REG : NO_REGS"
+  "EVEN core registers @code{r0}, @code{r2}, @code{r4}, @code{r6}, @code{r8},
    @code{r10}, @code{r12}, @code{r14}")
 
 (define_constraint "Rd"
index 9cb18ef50e8320b2d7160346361343c4ab1685b9..f43dabbfd4f15b602f0627a9b0ea423064501e51 100644 (file)
 ;;
 (define_insn "mve_vaddvq_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")]
         VADDVQ))
   ]
 ;;
 (define_insn "mve_vaddvaq_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                    (match_operand:MVE_2 2 "s_register_operand" "w")]
         VADDVAQ))
 ;;
 (define_insn "mve_vaddvq_p_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                    (match_operand:HI 2 "vpr_register_operand" "Up")]
         VADDVQ_P))
 ;;
 (define_insn "mve_vmladavq_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                    (match_operand:MVE_2 2 "s_register_operand" "w")]
         VMLADAVQ))
 ;;
 (define_insn "mve_vmladavxq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                    (match_operand:MVE_2 2 "s_register_operand" "w")]
         VMLADAVXQ_S))
 ;;
 (define_insn "mve_vmlsdavq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                    (match_operand:MVE_2 2 "s_register_operand" "w")]
         VMLSDAVQ_S))
 ;;
 (define_insn "mve_vmlsdavxq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                    (match_operand:MVE_2 2 "s_register_operand" "w")]
         VMLSDAVXQ_S))
 ;;
 (define_insn "mve_vaddvaq_p_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:HI 3 "vpr_register_operand" "Up")]
 ;;
 (define_insn "mve_vmladavaq_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:MVE_2 3 "s_register_operand" "w")]
 ;;
 (define_insn "mve_vmladavq_p_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:HI 3 "vpr_register_operand" "Up")]
 ;;
 (define_insn "mve_vmladavxq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:HI 3 "vpr_register_operand" "Up")]
 ;;
 (define_insn "mve_vmlsdavq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:HI 3 "vpr_register_operand" "Up")]
 ;;
 (define_insn "mve_vmlsdavxq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:MVE_2 1 "s_register_operand" "w")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:HI 3 "vpr_register_operand" "Up")]
 ;;
 (define_insn "mve_vmlsdavaxq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                    (match_operand:MVE_2 2 "s_register_operand" "w")
                    (match_operand:MVE_2 3 "s_register_operand" "w")]
 ;;
 (define_insn "mve_vmlsdavaq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                    (match_operand:MVE_2 2 "s_register_operand" "w")
                    (match_operand:MVE_2 3 "s_register_operand" "w")]
 ;;
 (define_insn "mve_vmladavaxq_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                    (match_operand:MVE_2 2 "s_register_operand" "w")
                    (match_operand:MVE_2 3 "s_register_operand" "w")]
 ;;
 (define_insn "mve_vmladavaq_p_<supf><mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                    (match_operand:MVE_2 2 "s_register_operand" "w")
                    (match_operand:MVE_2 3 "s_register_operand" "w")
 ;;
 (define_insn "mve_vmladavaxq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:MVE_2 3 "s_register_operand" "w")
 ;;
 (define_insn "mve_vmlsdavaq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:MVE_2 3 "s_register_operand" "w")
 ;;
 (define_insn "mve_vmlsdavaxq_p_s<mode>"
   [
-   (set (match_operand:SI 0 "s_register_operand" "=e")
+   (set (match_operand:SI 0 "s_register_operand" "=Te")
        (unspec:SI [(match_operand:SI 1 "s_register_operand" "0")
                       (match_operand:MVE_2 2 "s_register_operand" "w")
                       (match_operand:MVE_2 3 "s_register_operand" "w")
        (unspec:MVE_2 [(match_operand:SI 2 "s_register_operand" "1")
                      (match_operand:SI 3 "mve_imm_selective_upto_8" "Rg")]
         VIDUPQ))
-  (set (match_operand:SI 1 "s_register_operand" "=e")
+  (set (match_operand:SI 1 "s_register_operand" "=Te")
        (plus:SI (match_dup 2)
                (match_operand:SI 4 "immediate_operand" "i")))]
  "TARGET_HAVE_MVE"
                      (match_operand:SI 4 "mve_imm_selective_upto_8" "Rg")
                      (match_operand:HI 5 "vpr_register_operand" "Up")]
        VIDUPQ_M))
-  (set (match_operand:SI 2 "s_register_operand" "=e")
+  (set (match_operand:SI 2 "s_register_operand" "=Te")
        (plus:SI (match_dup 3)
                (match_operand:SI 6 "immediate_operand" "i")))]
  "TARGET_HAVE_MVE"
        (unspec:MVE_2 [(match_operand:SI 2 "s_register_operand" "1")
                      (match_operand:SI 3 "immediate_operand" "i")]
        VDDUPQ))
-  (set (match_operand:SI 1 "s_register_operand" "=e")
+  (set (match_operand:SI 1 "s_register_operand" "=Te")
        (minus:SI (match_dup 2)
                 (match_operand:SI 4 "immediate_operand" "i")))]
  "TARGET_HAVE_MVE"
                      (match_operand:SI 4 "mve_imm_selective_upto_8" "Rg")
                      (match_operand:HI 5 "vpr_register_operand" "Up")]
        VDDUPQ_M))
-  (set (match_operand:SI 2 "s_register_operand" "=e")
+  (set (match_operand:SI 2 "s_register_operand" "=Te")
        (minus:SI (match_dup 3)
                 (match_operand:SI 6 "immediate_operand" "i")))]
  "TARGET_HAVE_MVE"
                       (subreg:SI (match_operand:DI 3 "s_register_operand" "r") 4)
                       (match_operand:SI 4 "mve_imm_selective_upto_8" "Rg")]
         VDWDUPQ))
-   (set (match_operand:SI 1 "s_register_operand" "=e")
+   (set (match_operand:SI 1 "s_register_operand" "=Te")
        (unspec:SI [(match_dup 2)
                    (subreg:SI (match_dup 3) 4)
                    (match_dup 4)]
                       (match_operand:SI 5 "mve_imm_selective_upto_8" "Rg")
                       (match_operand:HI 6 "vpr_register_operand" "Up")]
         VDWDUPQ_M))
-   (set (match_operand:SI 1 "s_register_operand" "=e")
+   (set (match_operand:SI 1 "s_register_operand" "=Te")
        (unspec:SI [(match_dup 2)
                    (match_dup 3)
                    (subreg:SI (match_dup 4) 4)
                       (subreg:SI (match_operand:DI 3 "s_register_operand" "r") 4)
                       (match_operand:SI 4 "mve_imm_selective_upto_8" "Rg")]
         VIWDUPQ))
-   (set (match_operand:SI 1 "s_register_operand" "=e")
+   (set (match_operand:SI 1 "s_register_operand" "=Te")
        (unspec:SI [(match_dup 2)
                    (subreg:SI (match_dup 3) 4)
                    (match_dup 4)]
                       (match_operand:SI 5 "mve_imm_selective_upto_8" "Rg")
                       (match_operand:HI 6 "vpr_register_operand" "Up")]
         VIWDUPQ_M))
-   (set (match_operand:SI 1 "s_register_operand" "=e")
+   (set (match_operand:SI 1 "s_register_operand" "=Te")
        (unspec:SI [(match_dup 2)
                    (match_dup 3)
                    (subreg:SI (match_dup 4) 4)