S/390: Remove superfluous commutative constraint modifiers
authorAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 2 Apr 2020 07:20:11 +0000 (09:20 +0200)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 2 Apr 2020 07:20:11 +0000 (09:20 +0200)
For operands with an identical set of alternatives there is no point
in marking them commutative.  This patch removes the superfluous
constraint modifiers in vector.md and vx-builtins.md since it might
slow down reload without buying us anything.

There were even two patterns where the constraint modifier was plain
wrong: "sub<VF_HW>3" and "ior_not<VT>3". Fortunately it never had any effect.

gcc/ChangeLog:

2020-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
modifier.
("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
Remove constraints from expander.
* config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.

gcc/ChangeLog
gcc/config/s390/vector.md
gcc/config/s390/vx-builtins.md

index 66a118b6f5f1a62014e4dd3428ec3f4b90bf2884..5a8a2c525c9ee833c9db2007b56e6258fc85bd9e 100644 (file)
@@ -1,3 +1,25 @@
+2020-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
+       ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
+       ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
+       ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
+       ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
+       ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
+       ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
+       ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
+       ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
+       modifier.
+       ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
+       ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
+       Remove constraints from expander.
+       * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
+       ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
+       ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
+       ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
+       ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
+       ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
+
 2020-04-01  Peter Bergner  <bergner@linux.ibm.com>
 
        PR rtl-optimization/94123
index 378c9e3c7fbfaafce798b0a4cd8f03518657d180..9d3df9813c945e5f9102d5189b1cbe33a9da2bcd 100644 (file)
 ; operation into two DImode ADDs.
 (define_insn "<ti*>add<mode>3"
   [(set (match_operand:VIT           0 "nonimmediate_operand" "=v")
-       (plus:VIT (match_operand:VIT 1 "nonimmediate_operand" "%v")
+       (plus:VIT (match_operand:VIT 1 "nonimmediate_operand"  "v")
                  (match_operand:VIT 2 "general_operand"       "v")))]
   "TARGET_VX"
   "va<bhfgq>\t%v0,%v1,%v2"
 (define_insn "<ti*>sub<mode>3"
   [(set (match_operand:VIT            0 "nonimmediate_operand" "=v")
        (minus:VIT (match_operand:VIT 1 "nonimmediate_operand"  "v")
-                  (match_operand:VIT 2 "general_operand"  "v")))]
+                  (match_operand:VIT 2 "general_operand"       "v")))]
   "TARGET_VX"
   "vs<bhfgq>\t%v0,%v1,%v2"
   [(set_attr "op_type" "VRR")])
 ; vmlb, vmlhw, vmlf
 (define_insn "mul<mode>3"
   [(set (match_operand:VI_QHS              0 "register_operand" "=v")
-       (mult:VI_QHS (match_operand:VI_QHS 1 "register_operand" "%v")
+       (mult:VI_QHS (match_operand:VI_QHS 1 "register_operand"  "v")
                     (match_operand:VI_QHS 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vml<bhfgq><w>\t%v0,%v1,%v2"
 
 (define_insn "and<mode>3"
   [(set (match_operand:VT         0 "register_operand" "=v")
-       (and:VT (match_operand:VT 1 "register_operand" "%v")
+       (and:VT (match_operand:VT 1 "register_operand"  "v")
                (match_operand:VT 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vn\t%v0,%v1,%v2"
 
 (define_insn "notand<mode>3"
   [(set (match_operand:VT                 0 "register_operand" "=v")
-       (ior:VT (not:VT (match_operand:VT 1 "register_operand" "%v"))
+       (ior:VT (not:VT (match_operand:VT 1 "register_operand"  "v"))
                (not:VT (match_operand:VT 2 "register_operand"  "v"))))]
   "TARGET_VXE"
   "vnn\t%v0,%v1,%v2"
 
 (define_insn "ior<mode>3"
   [(set (match_operand:VT         0 "register_operand" "=v")
-       (ior:VT (match_operand:VT 1 "register_operand" "%v")
+       (ior:VT (match_operand:VT 1 "register_operand"  "v")
                (match_operand:VT 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vo\t%v0,%v1,%v2"
 (define_insn "ior_not<mode>3"
   [(set (match_operand:VT                 0 "register_operand" "=v")
        (ior:VT (not:VT (match_operand:VT 2 "register_operand"  "v"))
-               (match_operand:VT         1 "register_operand" "%v")))]
+               (match_operand:VT         1 "register_operand"  "v")))]
   "TARGET_VXE"
   "voc\t%v0,%v1,%v2"
   [(set_attr "op_type" "VRR")])
 
 (define_insn "xor<mode>3"
   [(set (match_operand:VT         0 "register_operand" "=v")
-       (xor:VT (match_operand:VT 1 "register_operand" "%v")
+       (xor:VT (match_operand:VT 1 "register_operand"  "v")
                (match_operand:VT 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vx\t%v0,%v1,%v2"
 
 (define_insn "notxor<mode>3"
   [(set (match_operand:VT                 0 "register_operand" "=v")
-       (not:VT (xor:VT (match_operand:VT 1 "register_operand" "%v")
+       (not:VT (xor:VT (match_operand:VT 1 "register_operand"  "v")
                        (match_operand:VT 2 "register_operand"  "v"))))]
   "TARGET_VXE"
   "vnx\t%v0,%v1,%v2"
 ; vmnb, vmnh, vmnf, vmng
 (define_insn "smin<mode>3"
   [(set (match_operand:VI          0 "register_operand" "=v")
-       (smin:VI (match_operand:VI 1 "register_operand" "%v")
+       (smin:VI (match_operand:VI 1 "register_operand"  "v")
                 (match_operand:VI 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vmn<bhfgq>\t%v0,%v1,%v2"
 ; vmxb, vmxh, vmxf, vmxg
 (define_insn "smax<mode>3"
   [(set (match_operand:VI          0 "register_operand" "=v")
-       (smax:VI (match_operand:VI 1 "register_operand" "%v")
+       (smax:VI (match_operand:VI 1 "register_operand"  "v")
                 (match_operand:VI 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vmx<bhfgq>\t%v0,%v1,%v2"
 ; vmnlb, vmnlh, vmnlf, vmnlg
 (define_insn "umin<mode>3"
   [(set (match_operand:VI          0 "register_operand" "=v")
-       (umin:VI (match_operand:VI 1 "register_operand" "%v")
+       (umin:VI (match_operand:VI 1 "register_operand"  "v")
                 (match_operand:VI 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vmnl<bhfgq>\t%v0,%v1,%v2"
 ; vmxlb, vmxlh, vmxlf, vmxlg
 (define_insn "umax<mode>3"
   [(set (match_operand:VI          0 "register_operand" "=v")
-       (umax:VI (match_operand:VI 1 "register_operand" "%v")
+       (umax:VI (match_operand:VI 1 "register_operand"  "v")
                 (match_operand:VI 2 "register_operand"  "v")))]
   "TARGET_VX"
   "vmxl<bhfgq>\t%v0,%v1,%v2"
 ; vmeb, vmeh, vmef
 (define_insn "vec_widen_smult_even_<mode>"
   [(set (match_operand:<vec_double>                 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand"  "v")
                              (match_operand:VI_QHS 2 "register_operand"  "v")]
                             UNSPEC_VEC_SMULT_EVEN))]
   "TARGET_VX"
 ; vmleb, vmleh, vmlef
 (define_insn "vec_widen_umult_even_<mode>"
   [(set (match_operand:<vec_double>                 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand"  "v")
                              (match_operand:VI_QHS 2 "register_operand"  "v")]
                             UNSPEC_VEC_UMULT_EVEN))]
   "TARGET_VX"
 ; vmob, vmoh, vmof
 (define_insn "vec_widen_smult_odd_<mode>"
   [(set (match_operand:<vec_double>                 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand"  "v")
                              (match_operand:VI_QHS 2 "register_operand"  "v")]
                             UNSPEC_VEC_SMULT_ODD))]
   "TARGET_VX"
 ; vmlob, vmloh, vmlof
 (define_insn "vec_widen_umult_odd_<mode>"
   [(set (match_operand:<vec_double>                 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand"  "v")
                              (match_operand:VI_QHS 2 "register_operand"  "v")]
                             UNSPEC_VEC_UMULT_ODD))]
   "TARGET_VX"
 
 (define_expand "vec_widen_umult_lo_<mode>"
   [(set (match_dup 3)
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_QHS 2 "register_operand"  "v")]
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "")
+                             (match_operand:VI_QHS 2 "register_operand" "")]
                             UNSPEC_VEC_UMULT_EVEN))
    (set (match_dup 4)
        (unspec:<vec_double> [(match_dup 1) (match_dup 2)]
                             UNSPEC_VEC_UMULT_ODD))
-   (set (match_operand:<vec_double>                 0 "register_operand" "=v")
+   (set (match_operand:<vec_double>                 0 "register_operand" "")
        (unspec:<vec_double> [(match_dup 3) (match_dup 4)]
                             UNSPEC_VEC_MERGEL))]
   "TARGET_VX"
 
 (define_expand "vec_widen_umult_hi_<mode>"
   [(set (match_dup 3)
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_QHS 2 "register_operand"  "v")]
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "")
+                             (match_operand:VI_QHS 2 "register_operand" "")]
                             UNSPEC_VEC_UMULT_EVEN))
    (set (match_dup 4)
        (unspec:<vec_double> [(match_dup 1) (match_dup 2)]
                             UNSPEC_VEC_UMULT_ODD))
-   (set (match_operand:<vec_double>                 0 "register_operand" "=v")
+   (set (match_operand:<vec_double>                 0 "register_operand" "")
        (unspec:<vec_double> [(match_dup 3) (match_dup 4)]
                             UNSPEC_VEC_MERGEH))]
   "TARGET_VX"
 
 (define_expand "vec_widen_smult_lo_<mode>"
   [(set (match_dup 3)
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_QHS 2 "register_operand"  "v")]
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "")
+                             (match_operand:VI_QHS 2 "register_operand" "")]
                             UNSPEC_VEC_SMULT_EVEN))
    (set (match_dup 4)
        (unspec:<vec_double> [(match_dup 1) (match_dup 2)]
                             UNSPEC_VEC_SMULT_ODD))
-   (set (match_operand:<vec_double>                 0 "register_operand" "=v")
+   (set (match_operand:<vec_double>                 0 "register_operand" "")
        (unspec:<vec_double> [(match_dup 3) (match_dup 4)]
                             UNSPEC_VEC_MERGEL))]
   "TARGET_VX"
 
 (define_expand "vec_widen_smult_hi_<mode>"
   [(set (match_dup 3)
-       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_QHS 2 "register_operand"  "v")]
+       (unspec:<vec_double> [(match_operand:VI_QHS 1 "register_operand" "")
+                             (match_operand:VI_QHS 2 "register_operand" "")]
                             UNSPEC_VEC_SMULT_EVEN))
    (set (match_dup 4)
        (unspec:<vec_double> [(match_dup 1) (match_dup 2)]
                             UNSPEC_VEC_SMULT_ODD))
-   (set (match_operand:<vec_double>                 0 "register_operand" "=v")
+   (set (match_operand:<vec_double>                 0 "register_operand" "")
        (unspec:<vec_double> [(match_dup 3) (match_dup 4)]
                             UNSPEC_VEC_MERGEH))]
   "TARGET_VX"
 ; vfasb, vfadb, wfasb, wfadb, wfaxb
 (define_insn "add<mode>3"
   [(set (match_operand:VF_HW             0 "register_operand" "=v")
-       (plus:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (plus:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                    (match_operand:VF_HW 2 "register_operand"  "v")))]
   "TARGET_VX"
   "<vw>fa<sdx>b\t%v0,%v1,%v2"
 ; vfssb, vfsdb, wfssb, wfsdb, wfsxb
 (define_insn "sub<mode>3"
   [(set (match_operand:VF_HW              0 "register_operand" "=v")
-       (minus:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (minus:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                     (match_operand:VF_HW 2 "register_operand"  "v")))]
   "TARGET_VX"
   "<vw>fs<sdx>b\t%v0,%v1,%v2"
 ; vfmsb, vfmdb, wfmsb, wfmdb, wfmxb
 (define_insn "mul<mode>3"
   [(set (match_operand:VF_HW             0 "register_operand" "=v")
-       (mult:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (mult:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                    (match_operand:VF_HW 2 "register_operand"  "v")))]
   "TARGET_VX"
   "<vw>fm<sdx>b\t%v0,%v1,%v2"
 ; vfmasb, vfmadb, wfmasb, wfmadb, wfmaxb
 (define_insn "fma<mode>4"
   [(set (match_operand:VF_HW            0 "register_operand" "=v")
-       (fma:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (fma:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                   (match_operand:VF_HW 2 "register_operand"  "v")
                   (match_operand:VF_HW 3 "register_operand"  "v")))]
   "TARGET_VX"
 ; vfmssb, vfmsdb, wfmssb, wfmsdb, wfmsxb
 (define_insn "fms<mode>4"
   [(set (match_operand:VF_HW                     0 "register_operand" "=v")
-       (fma:VF_HW (match_operand:VF_HW          1 "register_operand" "%v")
+       (fma:VF_HW (match_operand:VF_HW          1 "register_operand"  "v")
                   (match_operand:VF_HW          2 "register_operand"  "v")
                 (neg:VF_HW (match_operand:VF_HW 3 "register_operand"  "v"))))]
   "TARGET_VX"
 (define_insn "neg_fma<mode>4"
   [(set (match_operand:VF_HW             0 "register_operand" "=v")
        (neg:VF_HW
-        (fma:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+        (fma:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                    (match_operand:VF_HW 2 "register_operand"  "v")
                    (match_operand:VF_HW 3 "register_operand"  "v"))))]
   "TARGET_VXE"
 (define_insn "neg_fms<mode>4"
   [(set (match_operand:VF_HW                      0 "register_operand" "=v")
        (neg:VF_HW
-        (fma:VF_HW (match_operand:VF_HW          1 "register_operand" "%v")
+        (fma:VF_HW (match_operand:VF_HW          1 "register_operand"  "v")
                    (match_operand:VF_HW          2 "register_operand"  "v")
                  (neg:VF_HW (match_operand:VF_HW 3 "register_operand"  "v")))))]
   "TARGET_VXE"
 ; vfmaxsb, vfmaxdb, wfmaxsb, wfmaxdb, wfmaxxb
 (define_insn "*smax<mode>3_vxe"
   [(set (match_operand:VF_HW             0 "register_operand" "=v")
-       (smax:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (smax:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                    (match_operand:VF_HW 2 "register_operand"  "v")))]
   "TARGET_VXE"
   "<vw>fmax<sdx>b\t%v0,%v1,%v2,4"
 ; Emulate with compare + select
 (define_insn_and_split "*smaxv2df3_vx"
   [(set (match_operand:V2DF            0 "register_operand" "=v")
-       (smax:V2DF (match_operand:V2DF 1 "register_operand" "%v")
+       (smax:V2DF (match_operand:V2DF 1 "register_operand"  "v")
                   (match_operand:V2DF 2 "register_operand"  "v")))]
   "TARGET_VX && !TARGET_VXE"
   "#"
 ; vfminsb, vfmindb, wfminsb, wfmindb, wfminxb
 (define_insn "*smin<mode>3_vxe"
   [(set (match_operand:VF_HW             0 "register_operand" "=v")
-       (smin:VF_HW (match_operand:VF_HW 1 "register_operand" "%v")
+       (smin:VF_HW (match_operand:VF_HW 1 "register_operand"  "v")
                    (match_operand:VF_HW 2 "register_operand"  "v")))]
   "TARGET_VXE"
   "<vw>fmin<sdx>b\t%v0,%v1,%v2,4"
 ; Emulate with compare + select
 (define_insn_and_split "*sminv2df3_vx"
   [(set (match_operand:V2DF            0 "register_operand" "=v")
-       (smin:V2DF (match_operand:V2DF 1 "register_operand" "%v")
+       (smin:V2DF (match_operand:V2DF 1 "register_operand"  "v")
                   (match_operand:V2DF 2 "register_operand"  "v")))]
   "TARGET_VX && !TARGET_VXE"
   "#"
index f13984de9548370d494972c4e8b00eb3d3320046..9a7f3dae1df27a8daa1a7f4b208de2a4714961d9 100644 (file)
 ; vaccb, vacch, vaccf, vaccg, vaccq
 (define_insn "vacc<bhfgq>_<mode>"
   [(set (match_operand:VIT_HW                 0 "register_operand" "=v")
-       (unspec:VIT_HW [(match_operand:VIT_HW 1 "register_operand" "%v")
+       (unspec:VIT_HW [(match_operand:VIT_HW 1 "register_operand"  "v")
                        (match_operand:VIT_HW 2 "register_operand"  "v")]
                       UNSPEC_VEC_ADDC))]
   "TARGET_VX"
 
 (define_insn "vacq"
   [(set (match_operand:TI             0 "register_operand" "=v")
-       (unspec:TI [(match_operand:TI 1 "register_operand" "%v")
+       (unspec:TI [(match_operand:TI 1 "register_operand"  "v")
                    (match_operand:TI 2 "register_operand"  "v")
                    (match_operand:TI 3 "register_operand"  "v")]
                   UNSPEC_VEC_ADDE_U128))]
 
 (define_insn "vacccq"
   [(set (match_operand:TI             0 "register_operand" "=v")
-       (unspec:TI [(match_operand:TI 1 "register_operand" "%v")
+       (unspec:TI [(match_operand:TI 1 "register_operand"  "v")
                    (match_operand:TI 2 "register_operand"  "v")
                    (match_operand:TI 3 "register_operand"  "v")]
                   UNSPEC_VEC_ADDEC_U128))]
 ; vavgb, vavgh, vavgf, vavgg
 (define_insn "vec_avg<mode>"
   [(set (match_operand:VI_HW                0 "register_operand" "=v")
-       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "%v")
+       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand"  "v")
                       (match_operand:VI_HW 2 "register_operand"  "v")]
                      UNSPEC_VEC_AVG))]
   "TARGET_VX"
 ; vavglb, vavglh, vavglf, vavglg
 (define_insn "vec_avgu<mode>"
   [(set (match_operand:VI_HW                0 "register_operand" "=v")
-       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "%v")
+       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand"  "v")
                       (match_operand:VI_HW 2 "register_operand"  "v")]
                      UNSPEC_VEC_AVGU))]
   "TARGET_VX"
 ; vmalb, vmalh, vmalf, vmalg
 (define_insn "vec_vmal<mode>"
   [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
-       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
-                          (match_operand:VI_HW_QHS 2 "register_operand"  "v")
-                          (match_operand:VI_HW_QHS 3 "register_operand"  "v")]
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
                          UNSPEC_VEC_VMAL))]
   "TARGET_VX"
   "vmal<bhfgq><w>\t%v0,%v1,%v2,%v3"
 ; vmahb; vmahh, vmahf, vmahg
 (define_insn "vec_vmah<mode>"
   [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
-       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
-                          (match_operand:VI_HW_QHS 2 "register_operand"  "v")
-                          (match_operand:VI_HW_QHS 3 "register_operand"  "v")]
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
                          UNSPEC_VEC_VMAH))]
   "TARGET_VX"
   "vmah<bhfgq>\t%v0,%v1,%v2,%v3"
 
 ; vmalhb; vmalhh, vmalhf, vmalhg
 (define_insn "vec_vmalh<mode>"
-  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
-       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
-                          (match_operand:VI_HW_QHS 2 "register_operand"  "v")
-                          (match_operand:VI_HW_QHS 3 "register_operand"  "v")]
+  [(set (match_operand:VI_HW_QHS 0 "register_operand"                   "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
                          UNSPEC_VEC_VMALH))]
   "TARGET_VX"
   "vmalh<bhfgq>\t%v0,%v1,%v2,%v3"
 
 ; vmaeb; vmaeh, vmaef, vmaeg
 (define_insn "vec_vmae<mode>"
-  [(set (match_operand:<vec_double> 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand"   "%v")
+  [(set (match_operand:<vec_double> 0 "register_operand"                      "=v")
+       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand"    "v")
                              (match_operand:VI_HW_QHS 2 "register_operand"    "v")
                              (match_operand:<vec_double> 3 "register_operand" "v")]
                             UNSPEC_VEC_VMAE))]
 
 ; vmaleb; vmaleh, vmalef, vmaleg
 (define_insn "vec_vmale<mode>"
-  [(set (match_operand:<vec_double> 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_HW_QHS 2 "register_operand" "v")
+  [(set (match_operand:<vec_double> 0 "register_operand"                      "=v")
+       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand"    "v")
+                             (match_operand:VI_HW_QHS 2 "register_operand"    "v")
                              (match_operand:<vec_double> 3 "register_operand" "v")]
                             UNSPEC_VEC_VMALE))]
   "TARGET_VX"
 
 ; vmaob; vmaoh, vmaof, vmaog
 (define_insn "vec_vmao<mode>"
-  [(set (match_operand:<vec_double> 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
-                             (match_operand:VI_HW_QHS 2 "register_operand" "v")
+  [(set (match_operand:<vec_double> 0 "register_operand"                      "=v")
+       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand"    "v")
+                             (match_operand:VI_HW_QHS 2 "register_operand"    "v")
                              (match_operand:<vec_double> 3 "register_operand" "v")]
                             UNSPEC_VEC_VMAO))]
   "TARGET_VX"
 
 ; vmalob; vmaloh, vmalof, vmalog
 (define_insn "vec_vmalo<mode>"
-  [(set (match_operand:<vec_double> 0 "register_operand" "=v")
-       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand" "v")
-                             (match_operand:VI_HW_QHS 2 "register_operand" "v")
+  [(set (match_operand:<vec_double> 0 "register_operand"                      "=v")
+       (unspec:<vec_double> [(match_operand:VI_HW_QHS 1 "register_operand"    "v")
+                             (match_operand:VI_HW_QHS 2 "register_operand"    "v")
                              (match_operand:<vec_double> 3 "register_operand" "v")]
                             UNSPEC_VEC_VMALO))]
   "TARGET_VX"
 
 ; vmhb, vmhh, vmhf
 (define_insn "vec_smulh<mode>"
-  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
-       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
+  [(set (match_operand:VI_HW_QHS 0 "register_operand"                   "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
                           (match_operand:VI_HW_QHS 2 "register_operand" "v")]
                          UNSPEC_VEC_SMULT_HI))]
   "TARGET_VX"
 
 ; vmlhb, vmlhh, vmlhf
 (define_insn "vec_umulh<mode>"
-  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
-       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "%v")
+  [(set (match_operand:VI_HW_QHS 0 "register_operand"                   "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
                           (match_operand:VI_HW_QHS 2 "register_operand" "v")]
                          UNSPEC_VEC_UMULT_HI))]
   "TARGET_VX"
 ; Vector nor
 
 (define_insn "vec_nor<mode>3"
-  [(set (match_operand:VT_HW 0 "register_operand" "=v")
+  [(set (match_operand:VT_HW 0 "register_operand"            "=v")
        (not:VT_HW
-        (ior:VT_HW (match_operand:VT_HW 1 "register_operand" "%v")
+        (ior:VT_HW (match_operand:VT_HW 1 "register_operand" "v")
                    (match_operand:VT_HW 2 "register_operand" "v"))))]
   "TARGET_VX"
   "vno\t%v0,%v1,%v2"
   [(set (reg:CCVFHE CC_REGNUM)
        (compare:CCVFHE (match_operand:VF_HW 0 "register_operand"  "v")
                        (match_operand:VF_HW 1 "register_operand"  "v")))
-   (set (match_operand:<tointvec>               2 "register_operand" "=v")
+   (set (match_operand:<tointvec>            2 "register_operand" "=v")
        (ge:<tointvec> (match_dup 0) (match_dup 1)))]
   "TARGET_VX"
   "<vw>fche<sdx>bs\t%v2,%v0,%v1"
 
 
 (define_insn "vfmin<mode>"
-  [(set (match_operand:VF_HW                0 "register_operand" "=v")
-       (unspec:VF_HW [(match_operand:VF_HW 1 "register_operand" "%v")
-                      (match_operand:VF_HW 2 "register_operand"  "v")
+  [(set (match_operand:VF_HW                0 "register_operand"  "=v")
+       (unspec:VF_HW [(match_operand:VF_HW 1 "register_operand"   "v")
+                      (match_operand:VF_HW 2 "register_operand"   "v")
                       (match_operand:QI    3 "const_mask_operand" "C")]
                      UNSPEC_VEC_VFMIN))]
   "TARGET_VXE"
   [(set_attr "op_type" "VRR")])
 
 (define_insn "vfmax<mode>"
-  [(set (match_operand:VF_HW                0 "register_operand" "=v")
-       (unspec:VF_HW [(match_operand:VF_HW 1 "register_operand" "%v")
-                      (match_operand:VF_HW 2 "register_operand"  "v")
+  [(set (match_operand:VF_HW                0 "register_operand"  "=v")
+       (unspec:VF_HW [(match_operand:VF_HW 1 "register_operand"   "v")
+                      (match_operand:VF_HW 2 "register_operand"   "v")
                       (match_operand:QI    3 "const_mask_operand" "C")]
                      UNSPEC_VEC_VFMAX))]
   "TARGET_VXE"