`SELECT bitShiftLeft(toInt256(-2), number)`

`shift left for negative lhsbers is underfined!`

See https://clickhouse-test-reports.s3.yandex.net/14525/44726c37c3003ec8112dbf32efa350bd595163b3/fuzzer/report.html#fail1
{
        if (static_cast<size_t>(n) >= base_bits * arr_size)
            return 0;
        if (n <= 0)
            return rhs;
        wide_integer<Bits, Signed> lhs = rhs;
        int bit_shift = n % base_bits;
        unsigned n_bytes = n / base_bits;
        if (bit_shift)
        {
            lhs.m_arr[big(0)] <<= bit_shift;
            for (int i = 1; i < arr_size; ++i)
            {
                lhs.m_arr[big(i - 1)] |= lhs.m_arr[big(i)] >> (base_bits - bit_shift);
                lhs.m_arr[big(i)] <<= bit_shift;
            }
        }
        if (n_bytes)
        {
            for (unsigned i = 0; i < arr_size - n_bytes; ++i)
            {
                lhs.m_arr[big(i)] = lhs.m_arr[big(i + n_bytes)];
            }
            for (unsigned i = arr_size - n_bytes; i < arr_size; ++i)
                lhs.m_arr[big(i)] = 0;
        }
        return lhs;
    }
    constexpr static wide_integer<Bits, signed> shift_left(const wide_integer<Bits, signed> & rhs, int n)