diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/other/i386-1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/other/i386-1.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/other/i386-1.C b/gcc/testsuite/g++.dg/other/i386-1.C new file mode 100644 index 000000000..ec572ec94 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/i386-1.C @@ -0,0 +1,28 @@ +/* { dg-do run { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-msse2" } */ +/* { dg-require-effective-target sse2_runtime } */ + +#include <xmmintrin.h> + +static void +sse2_test (void) +{ + float a = 1.0f; + float b = 2.0f; + float c = 3.0f; + float r; + + __m128 v = _mm_set_ps(a, b, c, 0); + + v = (__m128)_mm_srli_si128((__m128i)v, 4); + _mm_store_ss(&r, v); + if (r != 3.0f) + abort (); +} + +int +main () +{ + sse2_test (); + return 0; +} |