Templated division by a power of 2
The code is missing #include &lt;type_traits&gt;; it would have been nice to have had the test cases too.
It would be nice to be able to check the argument restriction using assert.  Unfortunately, this doesn't fit nicely with C++11 constexpr functions, which may contain only a single return statement.  If you might also compile against a newer standard, we could perhaps conditionally test it:
#include &lt;cassert&gt;

template &lt;typename I, typename P&gt;
constexpr I div_by_power_of_2(I dividend, P power_of_2_divisor) noexcept
{
#if __cplusplus &gt;= 201402L
    assert((power_of_2_divisor &amp; power_of_2_divisor - 1) == 0);
#endif
    return dividend &gt;&gt; log2_of_power_of_2(power_of_2_divisor);
}

I don't see why we have a template and specializations, rather than simple overloading of log2_of_power_of_2, particularly as we don't widen signed types to preserve sign.
Contrary to your comment, the constexpr is valuable, as it allows this function to be called from within another constexpr function, whether or not that one is being called with constant arguments.

Modified code
static constexpr unsigned
log2_of_power_of_2(unsigned non_negative_power_of_2) noexcept
{ return __builtin_ctz  (non_negative_power_of_2); }

static constexpr unsigned long
log2_of_power_of_2(unsigned long non_negative_power_of_2)  noexcept
{ return __builtin_ctzl (non_negative_power_of_2); }

static constexpr unsigned long long
log2_of_power_of_2(unsigned long long non_negative_power_of_2) noexcept
{ return __builtin_ctzll(non_negative_power_of_2); }

static constexpr int
log2_of_power_of_2(int non_negative_power_of_2) noexcept
{ return __builtin_ctz  (non_negative_power_of_2); }

static constexpr long
log2_of_power_of_2(long non_negative_power_of_2)  noexcept
{ return __builtin_ctzl (non_negative_power_of_2); }

static constexpr long long
log2_of_power_of_2(long long non_negative_power_of_2) noexcept
{ return __builtin_ctzll(non_negative_power_of_2); }


#include &lt;cassert&gt;

template &lt;typename I, typename P&gt;
constexpr I div_by_power_of_2(I dividend, P power_of_2_divisor) noexcept
{
#if __cplusplus &gt;= 201402L
    assert((power_of_2_divisor &amp; power_of_2_divisor - 1) == 0);
#endif
    return dividend &gt;&gt; log2_of_power_of_2(power_of_2_divisor);
}


#include &lt;iostream&gt;
int main()
{
    std::cout &lt;&lt; div_by_power_of_2(15ul, 4) &lt;&lt; '\n';
}