`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
wide_integer_from_wide_integer(wide_integer<Bits, Signed> & self, const wide_integer<Bits2, Signed2> & rhs) noexcept
    {
        
        auto rhs_arr_size = wide_integer<Bits2, Signed2>::_impl::arr_size;
        int base_elems_to_copy = _impl::arr_size < rhs_arr_size ? _impl::arr_size : rhs_arr_size;
        for (int i = 0; i < base_elems_to_copy; ++i)
        {
            self.m_arr[little(i)] = rhs.m_arr[little(i)];
        }
        for (int i = 0; i < arr_size - base_elems_to_copy; ++i)
        {
            self.m_arr[big(i)] = is_negative(rhs) ? std::numeric_limits<base_type>::max() : 0;
        }
    }
    template <typename T>
    constexpr static bool should_keep_size()
    {
        return sizeof(T) * CHAR_BIT <= Bits;
    }
    constexpr static wide_integer<Bits, unsigned> shift_left(const wide_integer<Bits, unsigned> & rhs, int n)