diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-02 11:02:26 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-06-02 11:02:26 +0000 |
commit | 98e7c96c688d9ef4f1de01e91b5f3affcf71e5a6 (patch) | |
tree | d037b42d2dc54aff4cfa841cc5b0d18a9584b7b6 /gcc/config/i386 | |
parent | 4a5a4de294745e28770d9a17284b80fdabaea6f7 (diff) | |
download | gcc-98e7c96c688d9ef4f1de01e91b5f3affcf71e5a6.tar.gz |
* config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
x=x,x and v=v,m instead of x=x,m.
* gcc.target/i386/avx512vl-concatv4si-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237031 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/sse.md | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 2a11887adb0..5e7460841a0 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -13549,10 +13549,10 @@ (set_attr "mode" "TI,TI,DI,V4SF,SF,DI,DI")]) (define_insn "*vec_concatv4si" - [(set (match_operand:V4SI 0 "register_operand" "=x,x,x,x,x") + [(set (match_operand:V4SI 0 "register_operand" "=x,v,x,x,v") (vec_concat:V4SI - (match_operand:V2SI 1 "register_operand" " 0,x,0,0,x") - (match_operand:V2SI 2 "nonimmediate_operand" " x,x,x,m,m")))] + (match_operand:V2SI 1 "register_operand" " 0,v,0,0,v") + (match_operand:V2SI 2 "nonimmediate_operand" " x,v,x,m,m")))] "TARGET_SSE" "@ punpcklqdq\t{%2, %0|%0, %2} @@ -13562,7 +13562,7 @@ vmovhps\t{%2, %1, %0|%0, %1, %q2}" [(set_attr "isa" "sse2_noavx,avx,noavx,noavx,avx") (set_attr "type" "sselog,sselog,ssemov,ssemov,ssemov") - (set_attr "prefix" "orig,vex,orig,orig,vex") + (set_attr "prefix" "orig,maybe_evex,orig,orig,maybe_evex") (set_attr "mode" "TI,TI,V4SF,V2SF,V2SF")]) ;; movd instead of movq is required to handle broken assemblers. |