++dptr;
}
-#if defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__))
+#if defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__))
if ((len & (2 * sizeof(SIZE_T))) != 0)
{
__m128 v = _mm_loadu_ps((float *)sptr);
{
return;
}
-#else // !(defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__)))
+#else // !(defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__)))
if ((len & (2 * sizeof(SIZE_T))) != 0)
{
// Read two values and write two values to hint the use of wide loads and stores
sptr += 4;
dptr += 4;
}
-#endif // defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__))
+#endif // defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__))
}
}
}
}
-#if defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__))
+#if defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__))
if ((len & (2 * sizeof(SIZE_T))) != 0)
{
sptr -= 2;
{
return;
}
-#else // !(defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__)))
+#else // !(defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__)))
if ((len & (2 * sizeof(SIZE_T))) != 0)
{
sptr -= 2;
len -= 4 * sizeof(SIZE_T);
} while (len != 0);
return;
-#endif // defined(_AMD64_) && (defined(_MSC_VER) || defined(__clang__))
+#endif // defined(_AMD64_) && (defined(_MSC_VER) || defined(__GNUC__))
}
}
#ifndef NOOPT_ATTRIBUTE
#if defined(__llvm__)
#define NOOPT_ATTRIBUTE optnone
-#else
+#elif defined(__GNUC__)
#define NOOPT_ATTRIBUTE optimize("O0")
#endif
#endif
+#ifndef NODEBUG_ATTRIBUTE
+#if defined(__llvm__)
+#define NODEBUG_ATTRIBUTE __nodebug__
+#elif defined(__GNUC__)
+#define NODEBUG_ATTRIBUTE __artificial__
+#endif
+#endif
+
#ifndef PAL_STDCPP_COMPAT
#if __GNUC__
*===-----------------------------------------------------------------------===
*/
-#ifdef __clang__
+#ifdef __GNUC__
typedef float __m128 __attribute__((__vector_size__(16)));
/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
+#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, NODEBUG_ATTRIBUTE))
/// \brief Loads a 128-bit floating-point vector of [4 x float] from an aligned
/// memory location.
*(__m128*)__p = __a;
}
-#endif // __clang__
+#endif // __GNUC__