diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/i386-1.C | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e3adbc4..53cddc0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-25 Uros Bizjak <uros@kss-loka.si> + + * g++.dg/other/i386-1.C: Include i386-cpuid.h. Pass if + CPU has no SSE support. + 2005-10-24 Jerry DeLisle <jvdelisle@verizon.net> PR libgfortran/24224 diff --git a/gcc/testsuite/g++.dg/other/i386-1.C b/gcc/testsuite/g++.dg/other/i386-1.C index 4837197..c579cf2 100644 --- a/gcc/testsuite/g++.dg/other/i386-1.C +++ b/gcc/testsuite/g++.dg/other/i386-1.C @@ -3,13 +3,23 @@ #include <xmmintrin.h> #include <stdio.h> +#include "../../gcc.dg/i386-cpuid.h" int main(int argc, char** argv) { float a = 1.0f; float b = 2.0f; float c = 3.0f; float r; - + + unsigned long cpu_facilities; + + cpu_facilities = i386_cpuid (); + + if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV)) + != (bit_MMX | bit_SSE | bit_CMOV)) + /* If host has no vector support, pass. */ + return 0; + __m128 v = _mm_set_ps(a, b, c, 0); v = (__m128)_mm_srli_si128((__m128i)v, 4); |