diff --git a/src/include/OpenImageIO/platform.h b/src/include/OpenImageIO/platform.h index 7ed0548..39f2380 100644 --- a/src/include/OpenImageIO/platform.h +++ b/src/include/OpenImageIO/platform.h @@ -53,6 +53,8 @@ #ifdef _MSC_VER # include +#elif defined(__e2k__) && defined(__LCC__) +# include #endif #include @@ -389,6 +391,9 @@ // 'inline'. #if defined(__CUDACC__) # define OIIO_FORCEINLINE __inline__ +#elif defined(__EDG__) +# pragma diag_suppress 2189 +# define OIIO_FORCEINLINE inline __attribute__((always_inline)) #elif defined(__GNUC__) || defined(__clang__) || __has_attribute(always_inline) # define OIIO_FORCEINLINE inline __attribute__((always_inline)) #elif defined(_MSC_VER) || defined(__INTEL_COMPILER) @@ -582,6 +587,8 @@ inline void cpuid (int info[4], int infoType, int extra) : "=a" (info[0]), "=r" (info[1]), "=c" (info[2]), "=d" (info[3]) : "0" (infoType), "2" (extra)); # endif +#elif defined(__e2k__) && defined(__LCC__) + __cpuidex(info, infoType, extra); #else info[0] = 0; info[1] = 0; info[2] = 0; info[3] = 0; #endif diff --git a/src/include/OpenImageIO/simd.h b/src/include/OpenImageIO/simd.h index fdada23..83832e8 100644 --- a/src/include/OpenImageIO/simd.h +++ b/src/include/OpenImageIO/simd.h @@ -71,7 +71,8 @@ // Cuda -- don't include any of these headers #elif defined(_WIN32) # include -#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) || defined(__e2k__) +// e2k backend for Clang doesn't support x86 intrinsics and SIMD +#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__) || (defined(__e2k__) && defined(__LCC__))) # include #elif defined(__GNUC__) && defined(__ARM_NEON__) # include