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
    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