diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-05-12 10:32:31 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-05-12 10:32:31 +0200 |
commit | 515d7412eaa983bccaf84ed970c98978a5a1e168 (patch) | |
tree | 9894ce1badf53b58a1d3d9c2ad68f6a31e069726 /gcc/config/i386 | |
parent | 40bd4bf95e68e252afdf863f1c3d5f22e30f819e (diff) | |
download | gcc-515d7412eaa983bccaf84ed970c98978a5a1e168.zip gcc-515d7412eaa983bccaf84ed970c98978a5a1e168.tar.gz gcc-515d7412eaa983bccaf84ed970c98978a5a1e168.tar.bz2 |
sse.md (*vec_setv4sf_sse4_1, [...]): Use v constraint instead of x in avx alternatives.
* config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
constraint instead of x in avx alternatives. Use maybe_evex instead
of vex prefix.
* gcc.target/i386/avx512vl-vinsertps-1.c: New test.
From-SVN: r236162
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/sse.md | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index a8092cb..c2c7c8d 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -6657,11 +6657,11 @@ ;; A subset is vec_setv4sf. (define_insn "*vec_setv4sf_sse4_1" - [(set (match_operand:V4SF 0 "register_operand" "=Yr,*x,x") + [(set (match_operand:V4SF 0 "register_operand" "=Yr,*x,v") (vec_merge:V4SF (vec_duplicate:V4SF - (match_operand:SF 2 "nonimmediate_operand" "Yrm,*xm,xm")) - (match_operand:V4SF 1 "register_operand" "0,0,x") + (match_operand:SF 2 "nonimmediate_operand" "Yrm,*xm,vm")) + (match_operand:V4SF 1 "register_operand" "0,0,v") (match_operand:SI 3 "const_int_operand")))] "TARGET_SSE4_1 && ((unsigned) exact_log2 (INTVAL (operands[3])) @@ -6684,13 +6684,13 @@ (set_attr "prefix_data16" "1,1,*") (set_attr "prefix_extra" "1") (set_attr "length_immediate" "1") - (set_attr "prefix" "orig,orig,vex") + (set_attr "prefix" "orig,orig,maybe_evex") (set_attr "mode" "V4SF")]) (define_insn "sse4_1_insertps" - [(set (match_operand:V4SF 0 "register_operand" "=Yr,*x,x") - (unspec:V4SF [(match_operand:V4SF 2 "nonimmediate_operand" "Yrm,*xm,xm") - (match_operand:V4SF 1 "register_operand" "0,0,x") + [(set (match_operand:V4SF 0 "register_operand" "=Yr,*x,v") + (unspec:V4SF [(match_operand:V4SF 2 "nonimmediate_operand" "Yrm,*xm,vm") + (match_operand:V4SF 1 "register_operand" "0,0,v") (match_operand:SI 3 "const_0_to_255_operand" "n,n,n")] UNSPEC_INSERTPS))] "TARGET_SSE4_1" @@ -6718,7 +6718,7 @@ (set_attr "prefix_data16" "1,1,*") (set_attr "prefix_extra" "1") (set_attr "length_immediate" "1") - (set_attr "prefix" "orig,orig,vex") + (set_attr "prefix" "orig,orig,maybe_evex") (set_attr "mode" "V4SF")]) (define_split |