* [PATCH] Remove constraints from further i386 define_expand patterns
@ 2016-05-09 16:49 Jakub Jelinek
2016-05-09 19:42 ` Uros Bizjak
0 siblings, 1 reply; 2+ messages in thread
From: Jakub Jelinek @ 2016-05-09 16:49 UTC (permalink / raw)
To: Uros Bizjak, Kirill Yukhin; +Cc: gcc-patches
Hi!
I believe this cleans up all remaining define_expands (have looked
at tmp-mddump.md with sed picking up only define_expand patterns in there
and have been looking for any constraints and none were left).
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
2016-05-09 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.md (reload_noff_store, reload_noff_load, 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.
--- gcc/config/i386/i386.md.jj 2016-05-09 11:38:36.000000000 +0200
+++ gcc/config/i386/i386.md 2016-05-09 13:33:12.883238591 +0200
@@ -1891,9 +1891,9 @@ (define_insn "*popfl<mode>1"
;; Reload patterns to support multi-word load/store
;; with non-offsetable address.
(define_expand "reload_noff_store"
- [(parallel [(match_operand 0 "memory_operand" "=m")
- (match_operand 1 "register_operand" "r")
- (match_operand:DI 2 "register_operand" "=&r")])]
+ [(parallel [(match_operand 0 "memory_operand")
+ (match_operand 1 "register_operand")
+ (match_operand:DI 2 "register_operand")])]
"TARGET_64BIT"
{
rtx mem = operands[0];
@@ -1907,9 +1907,9 @@ (define_expand "reload_noff_store"
})
(define_expand "reload_noff_load"
- [(parallel [(match_operand 0 "register_operand" "=r")
- (match_operand 1 "memory_operand" "m")
- (match_operand:DI 2 "register_operand" "=r")])]
+ [(parallel [(match_operand 0 "register_operand")
+ (match_operand 1 "memory_operand")
+ (match_operand:DI 2 "register_operand")])]
"TARGET_64BIT"
{
rtx mem = operands[1];
@@ -12522,7 +12522,7 @@ (define_expand "prologue"
(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"
@@ -12542,7 +12542,7 @@ (define_insn "*set_got"
(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))])]
@@ -19041,7 +19041,7 @@ (define_insn "fnclex"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define_expand "lwp_llwpcb"
- [(unspec_volatile [(match_operand 0 "register_operand" "r")]
+ [(unspec_volatile [(match_operand 0 "register_operand")]
UNSPECV_LLWP_INTRINSIC)]
"TARGET_LWP")
@@ -19055,7 +19055,7 @@ (define_insn "*lwp_llwpcb<mode>1"
(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"
{
@@ -19079,9 +19079,9 @@ (define_insn "lwp_slwpcb<mode>"
(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.
@@ -19101,11 +19101,11 @@ (define_insn "*lwp_lwpval<mode>3_1"
(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")
--- gcc/config/i386/sse.md.jj 2016-05-09 13:15:55.000000000 +0200
+++ gcc/config/i386/sse.md 2016-05-09 13:31:21.086735811 +0200
@@ -11991,9 +11991,9 @@ (define_insn "vec_interleave_lowv4si<mas
(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);
@@ -12009,9 +12009,9 @@ (define_expand "vec_interleave_high<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);
@@ -17337,11 +17337,11 @@ (define_insn "<sse2_avx_avx512f>_vpermil
(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 (
@@ -17365,11 +17365,11 @@ (define_expand "<avx512>_vpermi2var<mode
})
(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 (
@@ -17466,11 +17466,11 @@ (define_insn "<avx512>_vpermi2var<mode>3
(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 (
@@ -17480,11 +17480,11 @@ (define_expand "<avx512>_vpermt2var<mode
})
(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 (
@@ -17494,11 +17494,11 @@ (define_expand "<avx512>_vpermt2var<mode
})
(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 (
Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Remove constraints from further i386 define_expand patterns
2016-05-09 16:49 [PATCH] Remove constraints from further i386 define_expand patterns Jakub Jelinek
@ 2016-05-09 19:42 ` Uros Bizjak
0 siblings, 0 replies; 2+ messages in thread
From: Uros Bizjak @ 2016-05-09 19:42 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Kirill Yukhin, gcc-patches
On Mon, May 9, 2016 at 6:49 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> I believe this cleans up all remaining define_expands (have looked
> at tmp-mddump.md with sed picking up only define_expand patterns in there
> and have been looking for any constraints and none were left).
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
reload_noff_store and reload_noff_load are part of secondary_reload
infrastructure, and this expander must have constraints, as said in
the documentation for TARGET_SECONDARY_RELOAD:
You do this by setting 'sri->icode' to the instruction code of a
pattern in the md file which performs the move. Operands 0 and 1
are the output and input of this copy, respectively. Operands from
operand 2 onward are for scratch operands. These scratch operands
must have a mode, and a single-register-class output constraint.
It is true, that the doc mentions only scratch operands, so it is
probably OK also to remove constraint from non-scratch operands of
these two patterns. Please confirm this with reload expert.
Others are OK.
Uros.
> 2016-05-09 Jakub Jelinek <jakub@redhat.com>
>
> * config/i386/i386.md (reload_noff_store, reload_noff_load, 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.
>
> --- gcc/config/i386/i386.md.jj 2016-05-09 11:38:36.000000000 +0200
> +++ gcc/config/i386/i386.md 2016-05-09 13:33:12.883238591 +0200
> @@ -1891,9 +1891,9 @@ (define_insn "*popfl<mode>1"
> ;; Reload patterns to support multi-word load/store
> ;; with non-offsetable address.
> (define_expand "reload_noff_store"
> - [(parallel [(match_operand 0 "memory_operand" "=m")
> - (match_operand 1 "register_operand" "r")
> - (match_operand:DI 2 "register_operand" "=&r")])]
> + [(parallel [(match_operand 0 "memory_operand")
> + (match_operand 1 "register_operand")
> + (match_operand:DI 2 "register_operand")])]
> "TARGET_64BIT"
> {
> rtx mem = operands[0];
> @@ -1907,9 +1907,9 @@ (define_expand "reload_noff_store"
> })
>
> (define_expand "reload_noff_load"
> - [(parallel [(match_operand 0 "register_operand" "=r")
> - (match_operand 1 "memory_operand" "m")
> - (match_operand:DI 2 "register_operand" "=r")])]
> + [(parallel [(match_operand 0 "register_operand")
> + (match_operand 1 "memory_operand")
> + (match_operand:DI 2 "register_operand")])]
> "TARGET_64BIT"
> {
> rtx mem = operands[1];
> @@ -12522,7 +12522,7 @@ (define_expand "prologue"
>
> (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"
> @@ -12542,7 +12542,7 @@ (define_insn "*set_got"
>
> (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))])]
> @@ -19041,7 +19041,7 @@ (define_insn "fnclex"
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> (define_expand "lwp_llwpcb"
> - [(unspec_volatile [(match_operand 0 "register_operand" "r")]
> + [(unspec_volatile [(match_operand 0 "register_operand")]
> UNSPECV_LLWP_INTRINSIC)]
> "TARGET_LWP")
>
> @@ -19055,7 +19055,7 @@ (define_insn "*lwp_llwpcb<mode>1"
> (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"
> {
> @@ -19079,9 +19079,9 @@ (define_insn "lwp_slwpcb<mode>"
> (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.
> @@ -19101,11 +19101,11 @@ (define_insn "*lwp_lwpval<mode>3_1"
>
> (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")
>
> --- gcc/config/i386/sse.md.jj 2016-05-09 13:15:55.000000000 +0200
> +++ gcc/config/i386/sse.md 2016-05-09 13:31:21.086735811 +0200
> @@ -11991,9 +11991,9 @@ (define_insn "vec_interleave_lowv4si<mas
> (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);
> @@ -12009,9 +12009,9 @@ (define_expand "vec_interleave_high<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);
> @@ -17337,11 +17337,11 @@ (define_insn "<sse2_avx_avx512f>_vpermil
> (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 (
> @@ -17365,11 +17365,11 @@ (define_expand "<avx512>_vpermi2var<mode
> })
>
> (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 (
> @@ -17466,11 +17466,11 @@ (define_insn "<avx512>_vpermi2var<mode>3
> (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 (
> @@ -17480,11 +17480,11 @@ (define_expand "<avx512>_vpermt2var<mode
> })
>
> (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 (
> @@ -17494,11 +17494,11 @@ (define_expand "<avx512>_vpermt2var<mode
> })
>
> (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 (
>
> Jakub
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-05-09 19:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-09 16:49 [PATCH] Remove constraints from further i386 define_expand patterns Jakub Jelinek
2016-05-09 19:42 ` Uros Bizjak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).