In GCC's version of pmmintrin.h we have:
#ifdef __SSE3__
#include <xmmintrin.h>
#include <emmintrin.h>

/* Additional bits in the MXCSR.  */
#define _MM_DENORMALS_ZERO_MASK         0x0040
#define _MM_DENORMALS_ZERO_ON           0x0040
#define _MM_DENORMALS_ZERO_OFF          0x0000

#define _MM_SET_DENORMALS_ZERO_MODE(mode) \
  _mm_setcsr ((_mm_getcsr () & ~_MM_DENORMALS_ZERO_MASK) | (mode))
#define _MM_GET_DENORMALS_ZERO_MODE() \
  (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)

... and then SSE3 intrinsics.

But those addtionnal MXCSR bits can be found, for example, on a k8 with only 
SSE2.
Side note: they aren't guarded this way either in Intel headers.

-- 
           Summary: DAZ related macros are improperly guarded in pmmintrin.h
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbptbp at gmail dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: x86*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21408

Reply via email to