x86: vpermil2p{s,d} have no commutative operands
While either of the last two operands can be in memory, they can't be swapped. gcc/ 2017-05-03 Jan Beulich <jbeulich@suse.com> * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand swapping, add (x,x,m,x,n) alternative. From-SVN: r247554
This commit is contained in:
parent
6987b50fcc
commit
6dc0137e89
|
@ -1,3 +1,11 @@
|
|||
2017-05-03 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
Backport from mainline
|
||||
2017-05-01 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
|
||||
swapping, add (x,x,m,x,n) alternative.
|
||||
|
||||
2017-05-03 Richard Biener <rguenther@suse.de>
|
||||
|
||||
Backport from mainline
|
||||
|
|
|
@ -17105,12 +17105,12 @@
|
|||
(set_attr "mode" "TI")])
|
||||
|
||||
(define_insn "xop_vpermil2<mode>3"
|
||||
[(set (match_operand:VF_128_256 0 "register_operand" "=x")
|
||||
[(set (match_operand:VF_128_256 0 "register_operand" "=x,x")
|
||||
(unspec:VF_128_256
|
||||
[(match_operand:VF_128_256 1 "register_operand" "x")
|
||||
(match_operand:VF_128_256 2 "nonimmediate_operand" "%x")
|
||||
(match_operand:<sseintvecmode> 3 "nonimmediate_operand" "xm")
|
||||
(match_operand:SI 4 "const_0_to_3_operand" "n")]
|
||||
[(match_operand:VF_128_256 1 "register_operand" "x,x")
|
||||
(match_operand:VF_128_256 2 "nonimmediate_operand" "x,m")
|
||||
(match_operand:<sseintvecmode> 3 "nonimmediate_operand" "xm,x")
|
||||
(match_operand:SI 4 "const_0_to_3_operand" "n,n")]
|
||||
UNSPEC_VPERMIL2))]
|
||||
"TARGET_XOP"
|
||||
"vpermil2<ssemodesuffix>\t{%4, %3, %2, %1, %0|%0, %1, %2, %3, %4}"
|
||||
|
|
Loading…
Reference in New Issue