diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-05-04 19:02:57 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-05-04 19:02:57 +0200 |
commit | 33fd7785cf867493ccf2339c4196fdb5c04c15c5 (patch) | |
tree | 63772190c076e8f824ab6d7dfd3d1e489d5b5bad /gcc | |
parent | 693a9117d0f26a4a7ee07783ac3971641429b03b (diff) | |
download | gcc-33fd7785cf867493ccf2339c4196fdb5c04c15c5.zip gcc-33fd7785cf867493ccf2339c4196fdb5c04c15c5.tar.gz gcc-33fd7785cf867493ccf2339c4196fdb5c04c15c5.tar.bz2 |
sse.md (sse2_movq128): Use v constraint instead of x.
* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
* gcc.target/i386/avx512vl-vmovq-1.c: New test.
From-SVN: r235893
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512vl-vmovq-1.c | 16 |
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92da7b5..c5d7251 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-05-04 Jakub Jelinek <jakub@redhat.com> + + * config/i386/sse.md (sse2_movq128): Use v constraint instead of x. + 2016-05-04 Jan Hubicka <hubicka@ucw.cz> * tree-inline.c (expand_call_inline): Fix path dealing with diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 42d553c..45d819e 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -1076,10 +1076,10 @@ (set_attr "mode" "<sseinsnmode>")]) (define_insn "sse2_movq128" - [(set (match_operand:V2DI 0 "register_operand" "=x") + [(set (match_operand:V2DI 0 "register_operand" "=v") (vec_concat:V2DI (vec_select:DI - (match_operand:V2DI 1 "nonimmediate_operand" "xm") + (match_operand:V2DI 1 "nonimmediate_operand" "vm") (parallel [(const_int 0)])) (const_int 0)))] "TARGET_SSE2" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5fe37cc..ee63d45 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-05-04 Jakub Jelinek <jakub@redhat.com> + + * gcc.target/i386/avx512vl-vmovq-1.c: New test. + 2016-05-04 Jan Hubicka <hubicka@ucw.cz> * gcc.dg/ipa/pure-const-3.c: New testcase. diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-vmovq-1.c b/gcc/testsuite/gcc.target/i386/avx512vl-vmovq-1.c new file mode 100644 index 0000000..8f3d346 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/avx512vl-vmovq-1.c @@ -0,0 +1,16 @@ +/* { dg-do assemble { target { avx512vl && { ! ia32 } } } } */ +/* { dg-options "-O2 -mavx512vl" } */ + +#include <x86intrin.h> + +void +foo (__m128i x, __m128i *y) +{ + register __m128i a __asm ("xmm16"); + a = x; + asm volatile ("" : "+v" (a)); + a = _mm_move_epi64 (a); + asm volatile ("" : "+v" (a)); + a = _mm_move_epi64 (*y); + asm volatile ("" : "+v" (a)); +} |