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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions