Skip to content

error: cannot convert '__m256i' to '__m256' in assignmen t #106

@Thermi

Description

@Thermi

Bug Description:

gcc 14.3.0

MCL 8.0.0

Maybe it just needs a typecast

18/32] Building CXX object columnar/accessor/CMakeFiles/accessor.dir/accessor.cpp.o
ninja: job failed: /usr/lib/ccache/bin/c++ -DUSE_AVX2 -Dknn_lib_EXPORTS -I/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/embeddin
gs -I/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/columnar -I/home/buildozer/aports/community/libmanticore-columnar/src/columna
r-8.0.0/util -I/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/common -I/home/buildozer/aports/community/libmanticore-columnar/src
/columnar-8.0.0/columnar/accessor -I/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/columnar/builder -I/home/buildozer/aports/comm
unity/libmanticore-columnar/src/columnar-8.0.0 -I/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/build/avx2/src/columnar_avx2-build/config -isystem /home/buildozer/aports/community/libmanticore-columnar/src/cache/linux-x86_64-v3/hnswlib/include -Os -fomit-frame-pointer -O2 -g -DNDEBUG 
-std=gnu++17 -fPIC -D_FILE_OFFSET_BITS=64 -fno-rtti -march=x86-64-v3 -MD -MT knn/CMakeFiles/knn_lib.dir/quantizer.cpp.o -MF knn/CMakeFiles/knn_lib.dir/quant
izer.cpp.o.d -o knn/CMakeFiles/knn_lib.dir/quantizer.cpp.o -c /home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp
/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp: In static member function 'static int knn::BinaryQuantizer_c::Q
uantize(const util::Span_T<float>&, float, float, util::SpanResizeable_T<unsigned char>&)':                        
/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:441:42: error: cannot convert '__m256i' to '__m256' in assignmen
t                                                                                                                                                             441 |                 iVec = _mm256_cvtps_epi32(iVec);
      |                        ~~~~~~~~~~~~~~~~~~^~~~~~                                                                                                     
      |                                          |                                                                                                          
      |                                          __m256i
/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:442:43: error: cannot convert '__m256' to '__m256i'
  442 |                 iVec = _mm256_max_epi32 ( iVec, _mm256_setzero_si256() );
      |                                           ^~~~ 
      |                                           |                    
      |                                           __m256          
In file included from /usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/include/immintrin.h:53,
                 from /usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/include/x86intrin.h:32,
                 from /home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/util/util_private.h:30,
                 from /home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:24:
/usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/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/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:443:43: error: cannot convert '__m256' to '__m256i'
  443 |                 iVec = _mm256_min_epi32 ( iVec, _mm256_set1_epi32(15) );                                                                                  |                                           ^~~~                                                                                                            |                                           |                                                                                                               |                                           __m256                                                                                                    /usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/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/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:445:55: error: cannot convert '__m256' to '__m256i'
  445 |                 iSumVec = _mm256_add_epi32 ( iSumVec, iVec );
      |                                                       ^~~~                                                                                          
      |                                                       |
      |                                                       __m256
/usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/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/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:447:55: error: cannot convert '__m256' to '__m256i'
  447 |                 __m128i iLow = _mm256_castsi256_si128(iVec);
      |                                                       ^~~~
      |                                                       |
      |                                                       __m256
In file included from /usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/include/immintrin.h:43:
/usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/include/avxintrin.h:1476:33: note:   initializing argument 1 of '__m128i _mm256_castsi256_si128(__m256i)'
 1476 | _mm256_castsi256_si128 (__m256i __A)
      |                         ~~~~~~~~^~~
/home/buildozer/aports/community/libmanticore-columnar/src/columnar-8.0.0/knn/quantizer.cpp:448:60: error: cannot convert '__m256' to '__m256i'
  448 |                 __m128i iHigh = _mm256_extracti128_si256 ( iVec, 1 );
      |                                                            ^~~~
      |                                                            |
      |                                                            __m256
/usr/lib/gcc/x86_64-alpine-linux-musl/14.3.0/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)
      |                           ~~~~~~~~^~~

Manticore Search Version:

13.2.3

Operating System Version:

Alpine Linux

Have you tried the latest development version?

No

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