OSDN Git Service

* g++.dg/other/i386-1.C: Include i386-cpuid.h. Pass if
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Oct 2005 13:01:12 +0000 (13:01 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Oct 2005 13:01:12 +0000 (13:01 +0000)
CPU has no SSE support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105885 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/i386-1.C

index e3adbc4..53cddc0 100644 (file)
@@ -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
index 4837197..c579cf2 100644 (file)
@@ -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);