Thanks César; I've done much of this already. I'll push my changes shortly (testing the AVX512 level now)
On Thu, Jul 13, 2023 at 9:49 AM César Pomar <[email protected]> wrote: > Hi, > > I think the same way. The code has multiple levels of vector extensions: > SSE2, SSE3, AVX... AVX512. The code has macros to define the data types > according to the selected extension. It's very possible that they focused > on SSE3 or AVX (which are already the minimum supported by any machine) and > neglected to test SSE2. > > I can also take a look. Additionally, since it supports up to AVX512, it > would be good to create multiple binaries (as we did in VeryFastTree) with > different levels so that modern hardware can take advantage of them while > preserving compatibility. > > El jue, 13 jul 2023 a las 9:36, Michael R. Crusoe (< > [email protected]>) escribió: > >> The real error is at >> >> gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 >> -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -DGSNAP=1 >> -mpopcnt -DHAVE_SSE2=1 -msse2 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -mno-avx2 >> -g -O2 -ffile-prefix-map=/builds/med-team/gmap/debian/output/source_dir=. >> -fstack-protector-strong -Wformat -Werror=format-security -c -o >> gsnap_sse2-intersect-uint2.o `test -f 'intersect-uint2.c' || echo >> './'`intersect-uint2.c >> intersect-simd.c: In function 'v1': >> intersect-simd.c:242:8: warning: implicit declaration of function >> '_mm_lddqu_si128'; did you mean '_mm_loadu_si128'? >> [-Wimplicit-function-declaration] >> 242 | F0 = _mm_lddqu_si128((const __m128i *)(freq)); >> | ^~~~~~~~~~~~~~~ >> | _mm_loadu_si128 >> >> I don't think upstream tested the SSE2 build recently; I'm looking at this >> now >> >> >> On Wed, Jul 12, 2023 at 2:01 PM Andreas Tille <[email protected]> wrote: >> >>> Hi, >>> >>> I admit I'm bad in such hardware internals that seem to break the >>> build of gmap: >>> >>> intersect-uint2.c:409:21: error: incompatible types when initializing >>> type '__m128i' using type 'int' >>> 409 | __m128i p = _mm_shuffle_epi8(v_a, * (__m128i *) >>> &(shuffle_mask16[r*16])); >>> | ^~~~~~~~~~~~~~~~ >>> intersect-uint2.c:427:17: error: incompatible types when assigning to >>> type '__m128i' from type 'int' >>> 427 | v_b = _mm_lddqu_si128((const __m128i *) &B[i_b]); >>> | ^~~~~~~~~~~~~~~ >>> >>> See >>> https://salsa.debian.org/med-team/gmap/-/jobs/4423598 >>> for the full build log. >>> >>> Any help would be welcome >>> Andreas. >>> >>> -- >>> http://fam-tille.de >>> >>>

