summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/mmx2.C
blob: 8ee6cd469ffe14665b7bbdc53516ec54b59afa32 (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
// { dg-do link { target i?86-*-* x86_64-*-* } }
// { dg-options "-O2 -mmmx" }
// { dg-prune-output "mangled name" }

#include <mmintrin.h>

static union u { __m64 m; long long l; } u;
extern "C" void abort (void);

__attribute__((noinline))
void bar (__m64 x)
{
  u.m = x;
}

int
main ()
{
  bar (_mm_set_pi32 (0x000000FF,0xFFFF00FF));
  _mm_empty ();
  if (u.l != 0xffffff00ffLL)
    abort ();
  return 0;
}