From: Jakub Jelinek Date: Wed, 4 May 2016 17:02:57 +0000 (+0200) Subject: sse.md (sse2_movq128): Use v constraint instead of x. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=33fd7785cf867493ccf2339c4196fdb5c04c15c5;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 92da7b52538..c5d7251d620 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 42d553cfdaa..45d819e3cc9 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 5fe37cc2480..ee63d45bd9c 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 00000000000..8f3d3460a6c --- /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)); +}