* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
* gcc.target/i386/avx512vl-vmovq-1.c: New test.
From-SVN: r235893
+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
(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"
+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.
--- /dev/null
+/* { 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));
+}