https://s3.amazonaws.com/clickhouse-test-reports/0/fe95703a49d612547e9c5ac24d01734fc900f45b/unit_tests__msan_.html

```
[ RUN      ] ColumnSparse.Filter
==13==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0xb18a011 in checkEquals(DB::IColumn const&, DB::IColumn const&) build_docker/../src/Columns/tests/gtest_column_sparse.cpp:51:13
    #1 0xb18a011 in ColumnSparse_Filter_Test::TestBody()::$_2::operator()(unsigned long, unsigned long, unsigned long) const build_docker/../src/Columns/tests/gtest_column_sparse.cpp:159:14
    #2 0xb18a011 in ColumnSparse_Filter_Test::TestBody() build_docker/../src/Columns/tests/gtest_column_sparse.cpp:177:13
    #3 0x226870e1 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2589:10
    #4 0x226870e1 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2625:14
    #5 0x225dda58 in testing::Test::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2664:5
    #6 0x225e5975 in testing::TestInfo::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2842:11
    #7 0x225e8739 in testing::TestSuite::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2996:28
    #8 0x22632112 in testing::internal::UnitTestImpl::RunAllTests() build_docker/../contrib/googletest/googletest/src/gtest.cc:5708:44
    #9 0x2268b7cb in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2589:10
    #10 0x2268b7cb in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2625:14
    #11 0x2262f8de in testing::UnitTest::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:5291:10
    #12 0xbafc59f in RUN_ALL_TESTS() build_docker/../contrib/googletest/googletest/include/gtest/gtest.h:2471:46
    #13 0xbafc59f in main build_docker/../src/Coordination/tests/gtest_coordination.cpp:2158:12
    #14 0x7fcd460dd082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)
    #15 0xb00ffad in _start (/unit_tests_dbms+0xb00ffad) (BuildId: dea0c07b2cbfa9a9)

  Uninitialized value was created by a heap allocation
    #0 0xb0448c0 in malloc (/unit_tests_dbms+0xb0448c0) (BuildId: dea0c07b2cbfa9a9)
    #1 0x577427fb in Allocator<false, false>::allocNoTrack(unsigned long, unsigned long) build_docker/../src/Common/Allocator.h:227:27
    #2 0xb195144 in Allocator<false, false>::alloc(unsigned long, unsigned long) build_docker/../src/Common/Allocator.h:96:16
    #3 0xb195144 in void DB::PODArrayBase<8ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::alloc<>(unsigned long) build_docker/../src/Common/PODArray.h:128:65
    #4 0x1eed54ff in void DB::PODArrayBase<8ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::realloc<>(unsigned long) build_docker/../src/Common/PODArray.h:153:13
    #5 0x1eed54ff in void DB::PODArrayBase<8ul, 4096ul, Allocator<false, false>, 15ul, 16ul>::reserve<>(unsigned long) build_docker/../src/Common/PODArray.h:234:13
    #6 0x1eed54ff in DB::ColumnVector<unsigned long>::filter(DB::PODArray<char8_t, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, long) const build_docker/../src/Columns/ColumnVector.cpp:600:18
    #7 0xb18942b in ColumnSparse_Filter_Test::TestBody()::$_2::operator()(unsigned long, unsigned long, unsigned long) const build_docker/../src/Columns/tests/gtest_column_sparse.cpp:157:35
    #8 0xb18942b in ColumnSparse_Filter_Test::TestBody() build_docker/../src/Columns/tests/gtest_column_sparse.cpp:177:13
    #9 0x226870e1 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2589:10
    #10 0x226870e1 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2625:14
    #11 0x225dda58 in testing::Test::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2664:5
    #12 0x225e5975 in testing::TestInfo::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2842:11
    #13 0x225e8739 in testing::TestSuite::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:2996:28
    #14 0x22632112 in testing::internal::UnitTestImpl::RunAllTests() build_docker/../contrib/googletest/googletest/src/gtest.cc:5708:44
    #15 0x2268b7cb in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2589:10
    #16 0x2268b7cb in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) build_docker/../contrib/googletest/googletest/src/gtest.cc:2625:14
    #17 0x2262f8de in testing::UnitTest::Run() build_docker/../contrib/googletest/googletest/src/gtest.cc:5291:10
    #18 0xbafc59f in RUN_ALL_TESTS() build_docker/../contrib/googletest/googletest/include/gtest/gtest.h:2471:46
    #19 0xbafc59f in main build_docker/../src/Coordination/tests/gtest_coordination.cpp:2158:12
    #20 0x7fcd460dd082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)

SUMMARY: MemorySanitizer: use-of-uninitialized-value build_docker/../src/Columns/tests/gtest_column_sparse.cpp:51:13 in checkEquals(DB::IColumn const&, DB::IColumn const&)
Exiting
```

cc: @CurtizJ 
* For such optimization it is important that data is right padded with 15 bytes.
      *
      * Replicate span size is offsets[i] - offsets[i - 1].
      *
      * Split spans into 3 categories.
      * 1. Span with 0 size. Continue iteration.
      *
      * 2. Span with 1 size. Update pointer from which data must be copied into result.
      * Then if we see span with size 1 or greater than 1 copy data directly into result data and reset pointer.
      * Example:
      * Data: 1 2 3 4
      * Offsets: 1 2 3 4
      * Result data: 1 2 3 4
      *
      * 3. Span with size greater than 1. Save single data element into register and copy it into result data.
      * Example:
      * Data: 1 2 3 4
      * Offsets: 4 4 4 4
      * Result data: 1 1 1 1
      *
      * Additional handling for tail is needed if pointer from which data must be copied from span with size 1 is not null.
      */
    template<typename IntType>
    requires (std::is_same_v<IntType, Int32> || std::is_same_v<IntType, UInt32>)
    void replicateSSE42Int32(const IntType * __restrict data, IntType * __restrict result_data, const IColumn::Offsets & offsets)
    {
        const IntType * data_copy_begin_ptr = nullptr;
        size_t offsets_size = offsets.size();
        for (size_t offset_index = 0; offset_index < offsets_size; ++offset_index)
        {