avutil/x86/intmath: use bzhi gcc builtin in av_mod_uintp2()

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2015-06-27 12:50:09 -03:00
parent 5cccbc3b74
commit 1e51e517be

View File

@ -39,6 +39,12 @@
#if defined(__BMI2__)
#if AV_GCC_VERSION_AT_LEAST(5,1)
#define av_mod_uintp2 __builtin_ia32_bzhi_si
#else
/* GCC releases before 5.1.0 have a broken bzhi builtin, so for those we
* implement it using inline assembly
*/
#define av_mod_uintp2 av_mod_uintp2_bmi2
static av_always_inline av_const unsigned av_mod_uintp2_bmi2(unsigned a, unsigned p)
{
@ -50,6 +56,7 @@ static av_always_inline av_const unsigned av_mod_uintp2_bmi2(unsigned a, unsigne
return x;
}
}
#endif /* AV_GCC_VERSION_AT_LEAST */
#endif /* __BMI2__ */