/*------------------------------------------------------------------------------
| Part of Tweedledum Project.  This file is distributed under the MIT License.
| See accompanying file /LICENSE for details.
*-----------------------------------------------------------------------------*/
#pragma once

#ifdef _MSC_VER
    #include <intrin.h>

static inline int __builtin_ctz(unsigned x)
{
    unsigned long ret;
    _BitScanForward(&ret, x);
    return (int) ret;
}

    #define __builtin_popcount __popcnt

#endif