Commit 9a53d503 by Uros Bizjak Committed by Uros Bizjak

re PR target/68924 (No intrinsic for x86 `MOVQ m64, %xmm` in 32bit mode.)

	PR target/68924
	PR target/78782
	PR target/87558
	* config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
	(_mm_storeu_si64): Ditto.

testsuite/ChangeLog:

	PR target/68924
	PR target/78782
	PR target/87558
	* gcc.target/i386/pr78782.c: New test.
	* gcc.target/i386/pr87558.c: Ditto.

From-SVN: r269497
parent 752e334b
2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
PR target/68924
PR target/78782
PR target/87558
* config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
(_mm_storeu_si64): Ditto.
2019-03-08 Martin Liska <mliska@suse.cz>
PR target/86952
......
......@@ -709,6 +709,12 @@ _mm_loadl_epi64 (__m128i_u const *__P)
return _mm_set_epi64 ((__m64)0LL, *(__m64_u *)__P);
}
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_loadu_si64 (void const *__P)
{
return _mm_loadl_epi64 ((__m128i_u *)__P);
}
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_store_si128 (__m128i *__P, __m128i __B)
{
......@@ -727,6 +733,12 @@ _mm_storel_epi64 (__m128i_u *__P, __m128i __B)
*(__m64_u *)__P = (__m64) ((__v2di)__B)[0];
}
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_storeu_si64 (void *__P, __m128i __B)
{
_mm_storel_epi64 ((__m128i_u *)__P, __B);
}
extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_movepi64_pi64 (__m128i __B)
{
......
2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
PR target/68924
PR target/78782
PR target/87558
* gcc.target/i386/pr78782.c: New test.
* gcc.target/i386/pr87558.c: Ditto.
2019-03-08 Jakub Jelinek <jakub@redhat.com>
PR c/85870
......
/* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */
#include <emmintrin.h>
__m128i foo (unsigned char *p)
{
return _mm_loadu_si64 ((void *)p);
}
/* { dg-do compile } */
/* { dg-options "-O2 -msse2" } */
#include <emmintrin.h>
void foo (unsigned char *p, __m128i x)
{
_mm_storeu_si64 ((void *)p, x);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment