Skip to content

compile error in quantizer.cpp #98

@Sembiance

Description

@Sembiance

Bug Description:

Compiling with cmake the latest code checked out as of a few moments ago with g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 yields the following error:

[ 84%] Building CXX object knn/CMakeFiles/knn_lib.dir/quantizer.cpp.o
/home/discmaster/src/columnar/knn/quantizer.cpp: In static member function ‘static int knn::BinaryQuantizer_c::Quantize(const util::Span_T<float>&, float, float, util::SpanResizeable_T<unsigned char>&)’:
/home/discmaster/src/columnar/knn/quantizer.cpp:496:42: error: cannot convert ‘__m256i’ to ‘__m256’ in assignment
  496 |                 iVec = _mm256_cvtps_epi32(iVec);
      |                        ~~~~~~~~~~~~~~~~~~^~~~~~
      |                                          |
      |                                          __m256i
/home/discmaster/src/columnar/knn/quantizer.cpp:497:43: error: cannot convert ‘__m256’ to ‘__m256i’
  497 |                 iVec = _mm256_max_epi32 ( iVec, _mm256_setzero_si256() );
      |                                           ^~~~
      |                                           |
      |                                           __m256
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                 from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                 from /home/discmaster/src/columnar/util/util_private.h:30,
                 from /home/discmaster/src/columnar/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:363:27: note:   initializing argument 1 of ‘__m256i _mm256_max_epi32(__m256i, __m256i)’
  363 | _mm256_max_epi32 (__m256i __A, __m256i __B)
      |                   ~~~~~~~~^~~
/home/discmaster/src/columnar/knn/quantizer.cpp:498:43: error: cannot convert ‘__m256’ to ‘__m256i’
  498 |                 iVec = _mm256_min_epi32 ( iVec, _mm256_set1_epi32(15) );
      |                                           ^~~~
      |                                           |
      |                                           __m256
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                 from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                 from /home/discmaster/src/columnar/util/util_private.h:30,
                 from /home/discmaster/src/columnar/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:405:27: note:   initializing argument 1 of ‘__m256i _mm256_min_epi32(__m256i, __m256i)’
  405 | _mm256_min_epi32 (__m256i __A, __m256i __B)
      |                   ~~~~~~~~^~~
/home/discmaster/src/columnar/knn/quantizer.cpp:500:55: error: cannot convert ‘__m256’ to ‘__m256i’
  500 |                 iSumVec = _mm256_add_epi32 ( iSumVec, iVec );
      |                                                       ^~~~
      |                                                       |
      |                                                       __m256
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                 from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                 from /home/discmaster/src/columnar/util/util_private.h:30,
                 from /home/discmaster/src/columnar/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:119:40: note:   initializing argument 2 of ‘__m256i _mm256_add_epi32(__m256i, __m256i)’
  119 | _mm256_add_epi32 (__m256i __A, __m256i __B)
      |                                ~~~~~~~~^~~
/home/discmaster/src/columnar/knn/quantizer.cpp:502:55: error: cannot convert ‘__m256’ to ‘__m256i’
  502 |                 __m128i iLow = _mm256_castsi256_si128(iVec);
      |                                                       ^~~~
      |                                                       |
      |                                                       __m256
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
                 from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                 from /home/discmaster/src/columnar/util/util_private.h:30,
                 from /home/discmaster/src/columnar/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1467:33: note:   initializing argument 1 of ‘__m128i _mm256_castsi256_si128(__m256i)’
 1467 | _mm256_castsi256_si128 (__m256i __A)
      |                         ~~~~~~~~^~~
/home/discmaster/src/columnar/knn/quantizer.cpp:503:60: error: cannot convert ‘__m256’ to ‘__m256i’
  503 |                 __m128i iHigh = _mm256_extracti128_si256 ( iVec, 1 );
      |                                                            ^~~~
      |                                                            |
      |                                                            __m256
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
                 from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
                 from /home/discmaster/src/columnar/util/util_private.h:30,
                 from /home/discmaster/src/columnar/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:1096:35: note:   initializing argument 1 of ‘__m128i _mm256_extracti128_si256(__m256i, int)’
 1096 | _mm256_extracti128_si256 (__m256i __X, const int __M)
      |                           ~~~~~~~~^~~
make[5]: *** [knn/CMakeFiles/knn_lib.dir/build.make:118: knn/CMakeFiles/knn_lib.dir/quantizer.cpp.o] Error 1
make[4]: *** [CMakeFiles/Makefile2:366: knn/CMakeFiles/knn_lib.dir/all] Error 2
make[3]: *** [Makefile:156: all] Error 2
make[2]: *** [CMakeFiles/columnar_avx2.dir/build.make:87: avx2/src/columnar_avx2-stamp/columnar_avx2-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:542: CMakeFiles/columnar_avx2.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

Manticore Search Version:

n/a

Operating System Version:

Ubuntu 22.04.5 LTS

Have you tried the latest development version?

Yes

Internal Checklist:

To be completed by the assignee. Check off tasks that have been completed or are not applicable.

Details
  • [] Implementation completed
  • [] Tests developed
  • [] Documentation updated
  • [] Documentation reviewed

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingwaiting

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions