blob: 7c4446abf950f7cc38ff5611ff2e4919a111c049 [file] [log] [blame]
/* PR target/13685 */
/* { dg-do run } */
/* { dg-options "-Os -msse" } */
#include <stdlib.h>
#include <stdio.h>
#include <xmmintrin.h>
#include "../../gcc.dg/i386-cpuid.h"
void foo (__m128 *, __m64 *, int);
__m128 xmm0 = { 0 };
__m64 mm0 = { 0 };
int
main ()
{
unsigned long cpu_facilities = i386_cpuid ();
if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV))
!= (bit_MMX | bit_SSE | bit_CMOV))
/* If host has no SSE support, pass. */
return 0;
foo (&xmm0, &mm0, 4);
return 0;
}
void
foo (__m128 *dst, __m64 *src, int n)
{
__m128 xmm0 = { 0 };
while (n > 64)
{
puts ("");
xmm0 = _mm_cvtpi32_ps (xmm0, *src);
*dst = xmm0;
n--;
}
}