#elif defined(_MSC_VER) && (_M_IX86 || _M_ARM || _M_AMD64 || _M_IA64)
#else
int
-ffs(unsigned i)
+ffs(int i)
{
int bit = 0;
if (!i)
#endif
#ifdef HAVE___BUILTIN_FFSLL
-#elif defined(_MSC_VER) && (_M_AMD64 || _M_ARM || _M_IA64)
+#elif defined(_MSC_VER) && (_M_AMD64 || _M_ARM64 || _M_IA64)
#else
int
-ffsll(uint64_t val)
+ffsll(long long int val)
{
int bit;