`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
{
    T part = DecimalUtils::getWholePart(x, scale);
    if (x.value < 0 && part == 0)
    {
        writeChar('-', ostr); 
    }
    if constexpr (std::is_same_v<T, Int256>)
        writeText(part, ostr);
    else
        writeIntText(part, ostr);
    if (scale)
    {
        writeChar('.', ostr);
        part = DecimalUtils::getFractionalPart(x, scale);
        String fractional = decimalFractional(part, scale);
        ostr.write(fractional.data(), scale);
    }
}
template <typename T>
inline std::enable_if_t<is_arithmetic_v<T>, void>