aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-05-04 19:02:57 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-05-04 19:02:57 +0200
commit33fd7785cf867493ccf2339c4196fdb5c04c15c5 (patch)
tree63772190c076e8f824ab6d7dfd3d1e489d5b5bad /gcc
parent693a9117d0f26a4a7ee07783ac3971641429b03b (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/i386/sse.md4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512vl-vmovq-1.c16
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));
+}