i386.md (set_got, [...]): Remove constraints from expanders.
authorJakub Jelinek <jakub@redhat.com>
Mon, 9 May 2016 20:09:29 +0000 (22:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 9 May 2016 20:09:29 +0000 (22:09 +0200)
* config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
expanders.
* config/i386/sse.md (vec_interleave_high<mode>,
vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
<avx512>_vpermt2var<mode>3_maskz): Likewise.

From-SVN: r236045

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/config/i386/sse.md

index 0cd95344f1bd0529b0e9e1069af6705a96ee8007..42152ef20c4eb80a46f7cc2d0f18d028a1eb675d 100644 (file)
@@ -1,3 +1,12 @@
+2016-05-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
+       lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
+       expanders.
+       * config/i386/sse.md (vec_interleave_high<mode>,
+       vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
+       <avx512>_vpermt2var<mode>3_maskz): Likewise.
+
 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
 
         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
index 9b5407aa6974c17dbed7dee708e709503812027b..9bd19ab04be95313626843e1dabdc81d571ecfd0 100644 (file)
 
 (define_expand "set_got"
   [(parallel
-     [(set (match_operand:SI 0 "register_operand" "=r")
+     [(set (match_operand:SI 0 "register_operand")
           (unspec:SI [(const_int 0)] UNSPEC_SET_GOT))
       (clobber (reg:CC FLAGS_REG))])]
   "!TARGET_64BIT"
 
 (define_expand "set_got_labelled"
   [(parallel
-     [(set (match_operand:SI 0 "register_operand" "=r")
+     [(set (match_operand:SI 0 "register_operand")
           (unspec:SI [(label_ref (match_operand 1))]
                      UNSPEC_SET_GOT))
       (clobber (reg:CC FLAGS_REG))])]
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define_expand "lwp_llwpcb"
-  [(unspec_volatile [(match_operand 0 "register_operand" "r")]
+  [(unspec_volatile [(match_operand 0 "register_operand")]
                    UNSPECV_LLWP_INTRINSIC)]
   "TARGET_LWP")
 
    (set_attr "length" "5")])
 
 (define_expand "lwp_slwpcb"
-  [(set (match_operand 0 "register_operand" "=r")
+  [(set (match_operand 0 "register_operand")
        (unspec_volatile [(const_int 0)] UNSPECV_SLWP_INTRINSIC))]
   "TARGET_LWP"
 {
    (set_attr "length" "5")])
 
 (define_expand "lwp_lwpval<mode>3"
-  [(unspec_volatile [(match_operand:SWI48 1 "register_operand" "r")
-                    (match_operand:SI 2 "nonimmediate_operand" "rm")
-                    (match_operand:SI 3 "const_int_operand" "i")]
+  [(unspec_volatile [(match_operand:SWI48 1 "register_operand")
+                    (match_operand:SI 2 "nonimmediate_operand")
+                    (match_operand:SI 3 "const_int_operand")]
                    UNSPECV_LWPVAL_INTRINSIC)]
   "TARGET_LWP"
   ;; Avoid unused variable warning.
 
 (define_expand "lwp_lwpins<mode>3"
   [(set (reg:CCC FLAGS_REG)
-       (unspec_volatile:CCC [(match_operand:SWI48 1 "register_operand" "r")
-                             (match_operand:SI 2 "nonimmediate_operand" "rm")
-                             (match_operand:SI 3 "const_int_operand" "i")]
+       (unspec_volatile:CCC [(match_operand:SWI48 1 "register_operand")
+                             (match_operand:SI 2 "nonimmediate_operand")
+                             (match_operand:SI 3 "const_int_operand")]
                             UNSPECV_LWPINS_INTRINSIC))
-   (set (match_operand:QI 0 "nonimmediate_operand" "=qm")
+   (set (match_operand:QI 0 "nonimmediate_operand")
        (eq:QI (reg:CCC FLAGS_REG) (const_int 0)))]
   "TARGET_LWP")
 
index 411f78e0ede43b3ff0f647d31a2255b961135980..e993f9cdc3a08c16e7dc428dfa72b4fdfa484fca 100644 (file)
    (set_attr "mode" "TI")])
 
 (define_expand "vec_interleave_high<mode>"
-  [(match_operand:VI_256 0 "register_operand" "=x")
-   (match_operand:VI_256 1 "register_operand" "x")
-   (match_operand:VI_256 2 "nonimmediate_operand" "xm")]
+  [(match_operand:VI_256 0 "register_operand")
+   (match_operand:VI_256 1 "register_operand")
+   (match_operand:VI_256 2 "nonimmediate_operand")]
  "TARGET_AVX2"
 {
   rtx t1 = gen_reg_rtx (<MODE>mode);
 })
 
 (define_expand "vec_interleave_low<mode>"
-  [(match_operand:VI_256 0 "register_operand" "=x")
-   (match_operand:VI_256 1 "register_operand" "x")
-   (match_operand:VI_256 2 "nonimmediate_operand" "xm")]
+  [(match_operand:VI_256 0 "register_operand")
+   (match_operand:VI_256 1 "register_operand")
+   (match_operand:VI_256 2 "nonimmediate_operand")]
  "TARGET_AVX2"
 {
   rtx t1 = gen_reg_rtx (<MODE>mode);
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_expand "<avx512>_vpermi2var<mode>3_maskz"
-  [(match_operand:VI48F 0 "register_operand" "=v")
-   (match_operand:VI48F 1 "register_operand" "v")
-   (match_operand:<sseintvecmode> 2 "register_operand" "0")
-   (match_operand:VI48F 3 "nonimmediate_operand" "vm")
-   (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
+  [(match_operand:VI48F 0 "register_operand")
+   (match_operand:VI48F 1 "register_operand")
+   (match_operand:<sseintvecmode> 2 "register_operand")
+   (match_operand:VI48F 3 "nonimmediate_operand")
+   (match_operand:<avx512fmaskmode> 4 "register_operand")]
   "TARGET_AVX512F"
 {
   emit_insn (gen_<avx512>_vpermi2var<mode>3_maskz_1 (
 })
 
 (define_expand "<avx512>_vpermi2var<mode>3_maskz"
-  [(match_operand:VI2_AVX512VL 0 "register_operand" "=v")
-   (match_operand:VI2_AVX512VL 1 "register_operand" "v")
-   (match_operand:<sseintvecmode> 2 "register_operand" "0")
-   (match_operand:VI2_AVX512VL 3 "nonimmediate_operand" "vm")
-   (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
+  [(match_operand:VI2_AVX512VL 0 "register_operand")
+   (match_operand:VI2_AVX512VL 1 "register_operand")
+   (match_operand:<sseintvecmode> 2 "register_operand")
+   (match_operand:VI2_AVX512VL 3 "nonimmediate_operand")
+   (match_operand:<avx512fmaskmode> 4 "register_operand")]
   "TARGET_AVX512BW"
 {
   emit_insn (gen_<avx512>_vpermi2var<mode>3_maskz_1 (
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_expand "<avx512>_vpermt2var<mode>3_maskz"
-  [(match_operand:VI48F 0 "register_operand" "=v")
-   (match_operand:<sseintvecmode> 1 "register_operand" "v")
-   (match_operand:VI48F 2 "register_operand" "0")
-   (match_operand:VI48F 3 "nonimmediate_operand" "vm")
-   (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
+  [(match_operand:VI48F 0 "register_operand")
+   (match_operand:<sseintvecmode> 1 "register_operand")
+   (match_operand:VI48F 2 "register_operand")
+   (match_operand:VI48F 3 "nonimmediate_operand")
+   (match_operand:<avx512fmaskmode> 4 "register_operand")]
   "TARGET_AVX512F"
 {
   emit_insn (gen_<avx512>_vpermt2var<mode>3_maskz_1 (
 })
 
 (define_expand "<avx512>_vpermt2var<mode>3_maskz"
-  [(match_operand:VI1_AVX512VL 0 "register_operand" "=v")
-   (match_operand:<sseintvecmode> 1 "register_operand" "v")
-   (match_operand:VI1_AVX512VL 2 "register_operand" "0")
-   (match_operand:VI1_AVX512VL 3 "nonimmediate_operand" "vm")
-   (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
+  [(match_operand:VI1_AVX512VL 0 "register_operand")
+   (match_operand:<sseintvecmode> 1 "register_operand")
+   (match_operand:VI1_AVX512VL 2 "register_operand")
+   (match_operand:VI1_AVX512VL 3 "nonimmediate_operand")
+   (match_operand:<avx512fmaskmode> 4 "register_operand")]
   "TARGET_AVX512VBMI"
 {
   emit_insn (gen_<avx512>_vpermt2var<mode>3_maskz_1 (
 })
 
 (define_expand "<avx512>_vpermt2var<mode>3_maskz"
-  [(match_operand:VI2_AVX512VL 0 "register_operand" "=v")
-   (match_operand:<sseintvecmode> 1 "register_operand" "v")
-   (match_operand:VI2_AVX512VL 2 "register_operand" "0")
-   (match_operand:VI2_AVX512VL 3 "nonimmediate_operand" "vm")
-   (match_operand:<avx512fmaskmode> 4 "register_operand" "Yk")]
+  [(match_operand:VI2_AVX512VL 0 "register_operand")
+   (match_operand:<sseintvecmode> 1 "register_operand")
+   (match_operand:VI2_AVX512VL 2 "register_operand")
+   (match_operand:VI2_AVX512VL 3 "nonimmediate_operand")
+   (match_operand:<avx512fmaskmode> 4 "register_operand")]
   "TARGET_AVX512BW"
 {
   emit_insn (gen_<avx512>_vpermt2var<mode>3_maskz_1 (