1326949Sdim/* PR target/13685 */
2326949Sdim/* { dg-do run } */
3353358Sdim/* { dg-options "-Os -msse" } */
4353358Sdim/* { dg-require-effective-target sse } */
5353358Sdim
6326949Sdim#include "sse-check.h"
7326949Sdim
8326949Sdim#include <xmmintrin.h>
9326949Sdim
10326949Sdimvoid foo (__m128 *, __m64 *, int);
11326949Sdim
12326949Sdim__m128 xmm0 = { 0 };
13326949Sdim__m64 mm0 = { 0 };
14326949Sdim
15326949Sdimstatic void
16326949Sdimsse_test (void)
17326949Sdim{
18326949Sdim  foo (&xmm0, &mm0, 4);
19326949Sdim}
20326949Sdim
21326949Sdimvoid
22326949Sdimfoo (__m128 *dst, __m64 *src, int n)
23326949Sdim{
24326949Sdim  __m128 xmm0 = { 0 };
25326949Sdim  while (n > 64)
26326949Sdim    {
27326949Sdim      puts ("");
28326949Sdim      xmm0 = _mm_cvtpi32_ps (xmm0, *src);
29326949Sdim      *dst = xmm0;
30353358Sdim      n--;
31326949Sdim    }
32326949Sdim}
33326949Sdim