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

Reply via email to