diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/opt/mmx2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/opt/mmx2.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/mmx2.C b/gcc/testsuite/g++.dg/opt/mmx2.C new file mode 100644 index 000000000..8ee6cd469 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/mmx2.C @@ -0,0 +1,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; +} |