From 4ded1f44f4754bbde8bc2067b8e344ebc9e13532 Mon Sep 17 00:00:00 2001 From: Sean Leather Date: Fri, 17 Oct 2014 22:44:07 +0200 Subject: [PATCH] Use predefined macros to enable SSE with gmake --- test/perftest/perftest.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/perftest/perftest.h b/test/perftest/perftest.h index 81b4011..549e07b 100644 --- a/test/perftest/perftest.h +++ b/test/perftest/perftest.h @@ -31,10 +31,12 @@ #define TEST_VERSION_CODE(x,y,z) \ (((x)*100000) + ((y)*100) + (z)) -// Only gcc >4.3 supports SSE4.2 -#if TEST_RAPIDJSON && !(defined(__GNUC__) && TEST_VERSION_CODE(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) < TEST_VERSION_CODE(4,3,0)) -//#define RAPIDJSON_SSE2 -#define RAPIDJSON_SSE42 +// __SSE2__ and __SSE4_2__ are recognized by gcc, clang, and the Intel compiler. +// We use -march=native with gmake to enable -msse2 and -msse4.2, if supported. +#if defined(__SSE4_2__) +# define RAPIDJSON_SSE42 +#elif defined(__SSE2__) +# define RAPIDJSON_SSE2 #endif #if TEST_YAJL