X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Futil%2Frounding.h;h=afb38fbdb56b31188b50529a8f8006e12188329c;hb=e844e1007d3baac09ff2cc78879d6974be18ecaf;hp=b0c9918fd6e69500682b97b98dba97189988a2b5;hpb=680de24545d23d0c2b699020267ca484f81a04a9;p=mesa.git diff --git a/src/util/rounding.h b/src/util/rounding.h index b0c9918fd6e..afb38fbdb56 100644 --- a/src/util/rounding.h +++ b/src/util/rounding.h @@ -24,8 +24,10 @@ #ifndef _ROUNDING_H #define _ROUNDING_H -#include +#include "c99_math.h" + #include +#include #ifdef __x86_64__ #include @@ -94,10 +96,12 @@ static inline long _mesa_lroundevenf(float x) { #ifdef __x86_64__ -#if LONG_BIT == 64 +#if LONG_MAX == INT64_MAX return _mm_cvtss_si64(_mm_load_ss(&x)); -#elif LONG_BIT == 32 +#elif LONG_MAX == INT32_MAX return _mm_cvtss_si32(_mm_load_ss(&x)); +#else +#error "Unsupported long size" #endif #else return lrintf(x); @@ -112,10 +116,12 @@ static inline long _mesa_lroundeven(double x) { #ifdef __x86_64__ -#if LONG_BIT == 64 +#if LONG_MAX == INT64_MAX return _mm_cvtsd_si64(_mm_load_sd(&x)); -#elif LONG_BIT == 32 +#elif LONG_MAX == INT32_MAX return _mm_cvtsd_si32(_mm_load_sd(&x)); +#else +#error "Unsupported long size" #endif #else return lrint(x);