summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr13685.c
blob: a50681bea268e9c20c37f2266a4bed92537d5666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* PR target/13685 */
/* { dg-do run } */
/* { dg-options "-Os -msse" } */
/* { dg-require-effective-target sse } */

#include "sse-check.h"

#include <xmmintrin.h>

void foo (__m128 *, __m64 *, int);

__m128 xmm0 = { 0 };
__m64 mm0 = { 0 };

static void
sse_test (void)
{
  foo (&xmm0, &mm0, 4);
}

void
foo (__m128 *dst, __m64 *src, int n)
{
  __m128 xmm0 = { 0 };
  while (n > 64)
    {
      puts ("");
      xmm0 = _mm_cvtpi32_ps (xmm0, *src);
      *dst = xmm0;
      n--;
    }
}