sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Limit 1st alternative to noavx isa...
* config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Limit 1st alternative to noavx isa, split 2nd alternative into one noavx and one avx alternative, use *x and Bm in the former and x and m in the latter. From-SVN: r236661
This commit is contained in:
parent
7733939d25
commit
a0caac985d
2 changed files with 12 additions and 10 deletions
|
@ -1,5 +1,10 @@
|
|||
2016-05-24 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
|
||||
Limit 1st alternative to noavx isa, split 2nd alternative into one
|
||||
noavx and one avx alternative, use *x and Bm in the former and
|
||||
x and m in the latter.
|
||||
|
||||
* config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
|
||||
of sse4 for the first alternative, drop %v from the template
|
||||
and d operand modifier. Split second alternative into one sse4_noavx
|
||||
|
|
|
@ -14996,22 +14996,19 @@
|
|||
(set_attr "mode" "<sseinsnmode>")])
|
||||
|
||||
(define_insn "<sse4_1>_round<ssemodesuffix><avxsizesuffix>"
|
||||
[(set (match_operand:VF_128_256 0 "register_operand" "=Yr,*x")
|
||||
[(set (match_operand:VF_128_256 0 "register_operand" "=Yr,*x,x")
|
||||
(unspec:VF_128_256
|
||||
[(match_operand:VF_128_256 1 "vector_operand" "YrBm,*xBm")
|
||||
(match_operand:SI 2 "const_0_to_15_operand" "n,n")]
|
||||
[(match_operand:VF_128_256 1 "vector_operand" "YrBm,*xBm,xm")
|
||||
(match_operand:SI 2 "const_0_to_15_operand" "n,n,n")]
|
||||
UNSPEC_ROUND))]
|
||||
"TARGET_ROUND"
|
||||
"%vround<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
|
||||
[(set_attr "type" "ssecvt")
|
||||
(set (attr "prefix_data16")
|
||||
(if_then_else
|
||||
(match_test "TARGET_AVX")
|
||||
(const_string "*")
|
||||
(const_string "1")))
|
||||
[(set_attr "isa" "noavx,noavx,avx")
|
||||
(set_attr "type" "ssecvt")
|
||||
(set_attr "prefix_data16" "1,1,*")
|
||||
(set_attr "prefix_extra" "1")
|
||||
(set_attr "length_immediate" "1")
|
||||
(set_attr "prefix" "maybe_vex")
|
||||
(set_attr "prefix" "orig,orig,vex")
|
||||
(set_attr "mode" "<MODE>")])
|
||||
|
||||
(define_expand "<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>"
|
||||
|
|
Loading…
Add table
Reference in a new issue