See this arbitrary macOS Travis job: https://travis-ci.org/github/bitcoin/bitcoin/jobs/702283632#L521

Somehow `AC_CHECK_DECLS` doesn't work for builtins for clang (it does work for GCC).

However, `__builtin_prefetch` (which is detected using `AC_COMPILE_IFELSE`) does work.
{
    uint32_t v = htobe32(x);
    memcpy(ptr, (char*)&v, 4);
}
void static inline WriteBE64(unsigned char* ptr, uint64_t x)
{
    uint64_t v = htobe64(x);
    memcpy(ptr, (char*)&v, 8);
}
uint64_t static inline CountBits(uint64_t x)
{
#if HAVE_DECL___BUILTIN_CLZL
    if (sizeof(unsigned long) >= sizeof(uint64_t)) {
        return x ? 8 * sizeof(unsigned long) - __builtin_clzl(x) : 0;
    }
#endif
#if HAVE_DECL___BUILTIN_CLZLL
    if (sizeof(unsigned long long) >= sizeof(uint64_t)) {
        return x ? 8 * sizeof(unsigned long long) - __builtin_clzll(x) : 0;
    }
#endif
    int ret = 0;
    while (x) {
        x >>= 1;
        ++ret;
    }
    return ret;
}
#endif