/* -*- c++ -*- */
/*
- * Copyright 2002 Free Software Foundation, Inc.
+ * Copyright 2002,2008 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
return (edx & (1 << 26)) != 0;
}
+bool
+gr_cpu::has_sse3 ()
+{
+ unsigned int ecx = cpuid_ecx (1); // standard features
+ return (ecx & (1 << 0)) != 0;
+}
+
+bool
+gr_cpu::has_ssse3 ()
+{
+ unsigned int ecx = cpuid_ecx (1); // standard features
+ return (ecx & (1 << 9)) != 0;
+}
+
+bool
+gr_cpu::has_sse4_1 ()
+{
+ unsigned int ecx = cpuid_ecx (1); // standard features
+ return (ecx & (1 << 19)) != 0;
+}
+
+bool
+gr_cpu::has_sse4_2 ()
+{
+ unsigned int ecx = cpuid_ecx (1); // standard features
+ return (ecx & (1 << 20)) != 0;
+}
+
+
bool
gr_cpu::has_3dnow ()
{
/* -*- c++ -*- */
/*
- * Copyright 2002 Free Software Foundation, Inc.
+ * Copyright 2002,2008 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
static bool has_mmx ();
static bool has_sse ();
static bool has_sse2 ();
+ static bool has_sse3 ();
+ static bool has_ssse3 ();
+ static bool has_sse4_1 ();
+ static bool has_sse4_2 ();
static bool has_3dnow ();
static bool has_3dnowext ();
};