`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 (res_i < curr_rhs)
                is_underflow = true;
            res_i -= curr_rhs;
        }
        if (is_underflow && r_idx < arr_size)
        {
            --res.m_arr[little(r_idx)];
            for (int i = arr_size - 1 - r_idx - 1; i >= 0; --i)
            {
                if (res.m_arr[big(i + 1)] == std::numeric_limits<base_type>::max())
                    --res.m_arr[big(i)];
                else
                    break;
            }
        }
        return res;
    }
    template <typename T>
    constexpr static wide_integer<Bits, Signed>
    _operator_plus_T(const wide_integer<Bits, Signed> & lhs, T rhs) noexcept(is_same<Signed, unsigned>::value)
    {
        wide_integer<Bits, Signed> res = lhs;
        bool is_overflow = false;
        int r_idx = 0;
        for (; static_cast<size_t>(r_idx) < sizeof(T) && r_idx < arr_size; ++r_idx)
        {
            base_type & res_i = res.m_arr[little(r_idx)];
            base_type curr_rhs = (rhs >> (r_idx * CHAR_BIT)) & std::numeric_limits<base_type>::max();
            if (is_overflow)