Hi again, Since that didn't work, I manually added a typedef definition for it, and it works now on both am64 machine and arm64 porter box - with passing build-time tests. I've pushed to salsa.
I'd be really grateful if you could take a look at my changes and let me know if they look fine. Also, another question: This package has a MPL-2.0 license and AFAIK, MPL is a restrictive Free software license, so does this qualify for adding in a "Built-Using" field? Thanks and regards Nilesh On Mon, 7 Dec 2020 at 16:19, Nilesh Patra <npatra...@gmail.com> wrote: > Hi Michael > > Thanks for the hint, I did this (not yet pushed): > > -#include <xmmintrin.h> > - > /* yes I know, the top of this file is quite ugly */ > > +define SIMDE_ENABLE_NATIVE_ALIASES > +#include <simde/x86/sse.h> > > But I end up with the same error that I pasted earlier. Am I missing > something in the hint? > Please let me know. > (I checked the code for xmmintrin.h and indeed the typedef should be > included on the above diff simde patch - I've no idea why this doesn't.) > > On Mon, 7 Dec 2020 at 16:04, Michael Crusoe <michael.cru...@gmail.com> > wrote: > >> Hey Nilesh, >> >> No problem for me when you ask for help! >> >> I suspect that >> https://salsa.debian.org/med-team/scrappie/-/commit/a00691d910110a460ef5e61a6c74cc2cb0e1a626#5dc91bdd30262777c0556235b73413cd5865a144_0_31 >> is the issue >> You should add the regular simde includes here, so that v4sf typedef works >> >> define SIMDE_ENABLE_NATIVE_ALIASES#include <simde/x86/sse.h> >> >> >> >> On Mon, 7 Dec 2020 at 11:28, Nilesh Patra <npatra...@gmail.com> wrote: >> >>> Hi Michael and others, >>> >>> Scrappie looks like a candidate where we can use the simde trick. >>> I tried doing a patch, and it works on amd64 machine, but not on an >>> arm64 porter box :/ (with issues with __v4sf) >>> >>> And I'm not sure how to fix this, and hence this is a humble request to >>> please take a look - and any help/hints would be really great. >>> My patch is pushed to salsa[1] >>> I'm also sorry if these pings are somehow irritating, since I need help >>> admittedly. >>> >>> [1]: https://salsa.debian.org/med-team/scrappie >>> >>> Pasting the (relevant part of) failing arm64 log: >>> >>> make[1]: Entering directory '/home/nilesh/scrappie/scrappie' >>> mkdir build >>> cd build && \ >>> cmake .. -DCMAKE_BUILD_TYPE=Release && \ >>> make >>> -- The C compiler identification is GNU 10.2.0 >>> -- Detecting C compiler ABI info >>> -- Detecting C compiler ABI info - done >>> -- Check for working C compiler: /usr/bin/cc - skipped >>> -- Detecting C compile features >>> -- Detecting C compile features - done >>> -- Performing Test HAS_OPENMP >>> -- Performing Test HAS_OPENMP - Success >>> -- Looking for hdf5.h >>> -- Looking for hdf5.h - not found >>> -- Looking for hdf5/serial/hdf5.h >>> -- Looking for hdf5/serial/hdf5.h - found >>> -- Configuring done >>> -- Generating done >>> -- Build files have been written to: /home/nilesh/scrappie/scrappie/build >>> make[2]: Entering directory '/home/nilesh/scrappie/scrappie/build' >>> make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent >>> make rule. >>> make[3]: Entering directory '/home/nilesh/scrappie/scrappie/build' >>> make[4]: Entering directory '/home/nilesh/scrappie/scrappie/build' >>> Scanning dependencies of target scrappie_objects >>> make[4]: Leaving directory '/home/nilesh/scrappie/scrappie/build' >>> make[4]: Entering directory '/home/nilesh/scrappie/scrappie/build' >>> [ 2%] Building C object CMakeFiles/scrappie_objects.dir/src/decode.c.o >>> In file included from /usr/include/simde/x86/avx.h:27, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'log_ps': >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:106:22: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 106 | x = _mm_max_ps(x, *(v4sf*)_ps_min_norm_pos); /* cut off >>> denormalized stuff */ >>> | ^~~~~~~~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/avx.h:27, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:110:22: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 110 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_mant_mask); >>> | ^~~~~~~~~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:113:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 113 | emm0 = _mm_sub_epi32(emm0, *(v4si*)_pi32_0x7f); >>> | ^~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'exp_ps': >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:228:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 228 | emm0 = _mm_add_epi32(emm0, *(v4si*)_pi32_0x7f); >>> | ^~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/avx.h:27, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'sin_ps': >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:281:22: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 281 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask); >>> | ^~~~~~~~~~~~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:283:36: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 283 | sign_bit = _mm_and_ps(sign_bit, *(v4sf*)_ps_sign_mask); >>> | ^~~~~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:291:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 291 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:292:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 292 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1); >>> | ^~~~~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:296:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 296 | emm0 = _mm_and_si128(emm2, *(v4si*)_pi32_4); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:304:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 304 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2); >>> | ^~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/avx.h:27, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'cos_ps': >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:364:22: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 364 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask); >>> | ^~~~~~~~~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:372:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 372 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:373:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 373 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1); >>> | ^~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:376:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 376 | emm2 = _mm_sub_epi32(emm2, *(v4si*)_pi32_2); >>> | ^~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:379:34: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 379 | emm0 = _mm_andnot_si128(emm2, *(v4si*)_pi32_4); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:382:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 382 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2); >>> | ^~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/avx.h:27, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function >>> 'sincos_ps': >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:444:22: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 444 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask); >>> | ^~~~~~~~~~~~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:446:44: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 446 | sign_bit_sin = _mm_and_ps(sign_bit_sin, *(v4sf*)_ps_sign_mask); >>> | ^~~~~~~~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:455:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 455 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:456:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 456 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1); >>> | ^~~~~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:462:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 462 | emm0 = _mm_and_si128(emm2, *(v4si*)_pi32_4); >>> | ^~~~~~~~~~~~~~ >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:467:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 467 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2); >>> | ^~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:483:31: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 483 | emm4 = _mm_sub_epi32(emm4, *(v4si*)_pi32_2); >>> | ^~~~~~~~~~~~~~ >>> In file included from /usr/include/simde/x86/sse3.h:30, >>> from /usr/include/simde/x86/ssse3.h:30, >>> from /usr/include/simde/x86/sse4.1.h:31, >>> from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:484:34: warning: >>> dereferencing type-punned pointer will break strict-aliasing rules >>> [-Wstrict-aliasing] >>> 484 | emm4 = _mm_andnot_si128(emm4, *(v4si*)_pi32_4); >>> | ^~~~~~~~~~~~~~ >>> In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5: >>> /home/nilesh/scrappie/scrappie/src/util.h: In function 'expfv': >>> /home/nilesh/scrappie/scrappie/src/util.h:172:5: error: unknown type >>> name '__v4sf'; did you mean 'v4sf'? >>> 172 | __v4sf y = (__v4sf) x; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:172:17: error: '__v4sf' >>> undeclared (first use in this function); did you mean 'v4sf'? >>> 172 | __v4sf y = (__v4sf) x; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:172:17: note: each undeclared >>> identifier is reported only once for each function it appears in >>> /home/nilesh/scrappie/scrappie/src/util.h:172:25: error: expected ',' or >>> ';' before 'x' >>> 172 | __v4sf y = (__v4sf) x; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h:173:28: error: incompatible >>> type for argument 1 of 'exp_ps' >>> 173 | return (__m128) exp_ps(y); >>> | ^ >>> | | >>> | int >>> In file included from /home/nilesh/scrappie/scrappie/src/util.h:9, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:5: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:183:67: note: expected >>> 'v4sf' {aka 'float32x4_t'} but argument is of type 'int' >>> 183 | static inline __attribute__((__always_inline__)) v4sf >>> exp_ps(v4sf x) { >>> | >>> ~~~~~^ >>> In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5: >>> /home/nilesh/scrappie/scrappie/src/util.h: In function 'logfv': >>> /home/nilesh/scrappie/scrappie/src/util.h:177:5: error: unknown type >>> name '__v4sf'; did you mean 'v4sf'? >>> 177 | __v4sf y = (__v4sf) x; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:177:17: error: '__v4sf' >>> undeclared (first use in this function); did you mean 'v4sf'? >>> 177 | __v4sf y = (__v4sf) x; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:177:25: error: expected ',' or >>> ';' before 'x' >>> 177 | __v4sf y = (__v4sf) x; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h:178:28: error: incompatible >>> type for argument 1 of 'log_ps' >>> 178 | return (__m128) log_ps(y); >>> | ^ >>> | | >>> | int >>> In file included from /home/nilesh/scrappie/scrappie/src/util.h:9, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:5: >>> /home/nilesh/scrappie/scrappie/src/sse_mathfun.h:101:67: note: expected >>> 'v4sf' {aka 'float32x4_t'} but argument is of type 'int' >>> 101 | static inline v4sf __attribute__((__always_inline__)) >>> log_ps(v4sf x) { >>> | >>> ~~~~~^ >>> In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5: >>> /home/nilesh/scrappie/scrappie/src/util.h: In function 'fast_expfv': >>> /home/nilesh/scrappie/scrappie/src/util.h:205:32: error: '__v4sf' >>> undeclared (first use in this function); did you mean 'v4sf'? >>> 205 | const __m128 a = (__m128) (__v4sf) { _A, _A, _A, _A }; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:205:40: error: expected ',' or >>> ';' before '{' token >>> 205 | const __m128 a = (__m128) (__v4sf) { _A, _A, _A, _A }; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h:206:40: error: expected ',' or >>> ';' before '{' token >>> 206 | const __m128 b = (__m128) (__v4sf) { _B, _B, _B, _B }; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h:207:45: error: expected ',' or >>> ';' before '{' token >>> 207 | const __m128 _bound = (__m128) (__v4sf) { _BOUND, _BOUND, >>> _BOUND, _BOUND }; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h: In function 'fast_logfv': >>> /home/nilesh/scrappie/scrappie/src/util.h:217:32: error: '__v4sf' >>> undeclared (first use in this function); did you mean 'v4sf'? >>> 217 | const __m128 a = (__m128) (__v4sf) { _Alogfv, _Alogfv, >>> _Alogfv, _Alogfv }; >>> | ^~~~~~ >>> | v4sf >>> /home/nilesh/scrappie/scrappie/src/util.h:217:40: error: expected ',' or >>> ';' before '{' token >>> 217 | const __m128 a = (__m128) (__v4sf) { _Alogfv, _Alogfv, >>> _Alogfv, _Alogfv }; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/util.h:218:40: error: expected ',' or >>> ';' before '{' token >>> 218 | const __m128 b = (__m128) (__v4sf) { _Blogfv, _Blogfv, >>> _Blogfv, _Blogfv }; >>> | ^ >>> /home/nilesh/scrappie/scrappie/src/decode.c: At top level: >>> /home/nilesh/scrappie/scrappie/src/decode.c:11:6: error: #error >>> "Compilation of function decode_transducer requires a processor that >>> supports at least SSE2" >>> 11 | # error "Compilation of function decode_transducer requires a >>> processor that supports at least SSE2" >>> | ^~~~~ >>> In file included from /usr/include/simde/x86/sse4.2.h:31, >>> from /usr/include/simde/x86/avx.h:31, >>> from >>> /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6, >>> from /home/nilesh/scrappie/scrappie/src/decode.h:5, >>> from /home/nilesh/scrappie/scrappie/src/decode.c:3: >>> /home/nilesh/scrappie/scrappie/src/decode.c:25:74: error: redefinition >>> of 'simde_mm_mullo_epi32' >>> 25 | static inline __m128i __attribute__((__gnu_inline__, >>> __always_inline__)) _mm_mullo_epi32(const __m128i x, const __m128i y) { >>> >>> | >>> ^~~~~~~~~~~~~~~ >>> /usr/include/simde/x86/sse4.1.h:1761:1: note: previous definition of >>> 'simde_mm_mullo_epi32' was here >>> 1761 | simde_mm_mullo_epi32 (simde__m128i a, simde__m128i b) { >>> | ^~~~~~~~~~~~~~~~~~~~ >>> make[4]: *** [CMakeFiles/scrappie_objects.dir/build.make:82: >>> CMakeFiles/scrappie_objects.dir/src/decode.c.o] Error 1 >>> make[4]: Leaving directory '/home/nilesh/scrappie/scrappie/build' >>> make[3]: *** [CMakeFiles/Makefile2:104: >>> CMakeFiles/scrappie_objects.dir/all] Error 2 >>> make[3]: Leaving directory '/home/nilesh/scrappie/scrappie/build' >>> make[2]: *** [Makefile:182: all] Error 2 >>> make[2]: Leaving directory '/home/nilesh/scrappie/scrappie/build' >>> make[1]: *** [Makefile:21: build/scrappie] Error 2 >>> make[1]: Leaving directory '/home/nilesh/scrappie/scrappie' >>> dh_auto_build: error: make -j4 "INSTALL=install --strip-program=true" >>> returned exit code 2 >>> make: *** [debian/rules:11: binary] Error 2 >>> >>> >> >> -- >> Michael R. Crusoe >> Co-founder & Lead, >> Common Workflow Language project <http://www.commonwl.org/> >> https://orcid.org/0000-0002-2961-9670 >> m...@commonwl.org >> >