22.12
```sql
SELECT cityHash64(toIPv4('1.2.3.4'))
--
5715546585361069049
```

22.13
```sql
SELECT cityHash64(toIPv4('1.2.3.4'))
--
3462390757903342180
```

I found it accidentally. It seems it's only with cityHash64 and IPv4. 
It seems it's OK with other hash functions (sipHash / xxHash32) and IPv6.
May be it's only issue with MacOs build.

If it's the real issue, probably it's worth to check all hash functions.

: cast_ipv4_ipv6_default_on_conversion_error(context->getSettingsRef().cast_ipv4_ipv6_default_on_conversion_error)
    {
    }
    String getName() const override { return name; }
    size_t getNumberOfArguments() const override { return 1; }
    bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & ) const override { return false; }
    bool useDefaultImplementationForConstants() const override { return true; }
    bool useDefaultImplementationForNulls() const override { return false; }
    DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override
    {
        if (!isStringOrFixedString(removeNullable(arguments[0])))
        {
            throw Exception(
                ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[0]->getName(), getName());
        }
        auto result_type = std::make_shared<DataTypeFixedString>(IPV6_BINARY_LENGTH);
        if constexpr (exception_mode == IPStringToNumExceptionMode::Null)
        {
            return makeNullable(result_type);
        }
        return arguments[0]->isNullable() ? makeNullable(result_type) : result_type;
    }
    ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t ) const override
    {
        ColumnPtr column = arguments[0].column;
        ColumnPtr null_map_column;
        const NullMap * null_map = nullptr;
        if (column->isNullable())
        {
            const auto * column_nullable = assert_cast<const ColumnNullable *>(column.get());