From: jakub Date: Wed, 4 May 2016 17:02:57 +0000 (+0000) Subject: * config/i386/sse.md (sse2_movq128): Use v constraint instead of x. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=70cf83ba971cb196eec4ccaaa90bedad0cbc08e3;p=thirdparty%2Fgcc.git * config/i386/sse.md (sse2_movq128): Use v constraint instead of x. * gcc.target/i386/avx512vl-vmovq-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235893 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92da7b525387..c5d7251d6202 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-05-04 Jakub Jelinek + + * config/i386/sse.md (sse2_movq128): Use v constraint instead of x. + 2016-05-04 Jan Hubicka * 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 42d553cfdaa5..45d819e3cc91 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -1076,10 +1076,10 @@ (set_attr "mode" "")]) (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 5fe37cc24803..ee63d45bd9ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-05-04 Jakub Jelinek + + * gcc.target/i386/avx512vl-vmovq-1.c: New test. + 2016-05-04 Jan Hubicka * 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 000000000000..8f3d3460a6c9 --- /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 + +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)); +}