Fix glm::findMSB for GCC >= 4.0

Before this fix, the GCC specific MSB function returned the number
of leading zero bits in the parameter value. With this change,
the number of trailing zero bits is returned instead.

I am not entirely sure if this fix is correct, because I could not
find a clear reference about what findMSB in GLSL is really
supposed to return with some concrete input value.
At least the result is now consistent with the GLM_ARCH_PURE
implementation of glm::findMSB.
This commit is contained in:
Joonas Sarajärvi 2012-09-12 01:44:34 +03:00
parent da530ac46e
commit daa51e42bb

View File

@ -543,7 +543,11 @@ namespace glm
genIUType const & Value
)
{
return __builtin_clz(Value);
/**
* ctz returns the number or trailing 0-bits; see
* http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Other-Builtins.html
*/
return __builtin_ctz(Value);
}
#else