aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/i386-1.C12
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);