[PATCH] std::experimental::simd

Thomas Rodgers trodgers@redhat.com
Mon Feb 10 20:14:00 GMT 2020


Erk, that was intended as a private reply.

Thomak Rodgers writes:

> Catching up on this...(and since I'm not in Prague I won't be able to do so in person).
>
> I finally got a chance to talk with Jeff Law recently about a more extensive testing strategy using Red Hat internal resources, and I am going to start working on
> adapting his CI build scripts that drive checking out machines from our lab environment starting later this week.
>
> Jonathan indicated you may have a newer version of your <simd> patch forthcoming? Is that something that's likely to happen before the end of this month? I'd
> like to work on getting start working on getting <simd> in during stage4 (Jonathan is willing to accept it because it is experimental as long as it is in
> good shape to commit).
>
> Thanks,
> Tom.
>
>
> ----- Original Message -----
> From: "Dr. Matthias Kretz" <m.kretz@gsi.de>
> To: trodgers@redhat.com
> Cc: libstdc++@gcc.gnu.org
> Sent: Thursday, October 24, 2019 1:26:47 AM
> Subject: Re: [PATCH] std::experimental::simd
>
> On Montag, 14. Oktober 2019 14:12:12 CEST Matthias Kretz wrote:
>> This patch is without documentation and testsuite. I can add them on request
>> but would prefer a follow-up patch after getting this one right.
>
> Regarding tests, here's what I think a "consumer test" should cover:
>
> 1. compiler flags
>   - `-march=native -O2`
>
> 2. element types
>   - char
>   - uint8_t
>   - int
>   - float
>   - double
>
> 3. operations
>   - broadcast ctor
>   - generator ctor
>   - all operators
>   - compares
>   - mask reductions
>   - non-converting loads & stores
>   - non-converting masked loads & stores
>   - horizontal reductions
>   - math: 1024 input values, comparing fun(T) against fun(simd<T>)
>   - conversions:
>     * char <-> int
>     * uint8_t <-> int
>     * uint8_t <-> float
>     * int <-> float
>     * int <-> double
>     * float <-> double
>
> 4. ABI tags:
>   - scalar
>   - fixed_size<{2, 3, 4, 6, 8, 12, 16, 32}>
>   - deduce_t<T, {2, 3, 4, 6, 8, 12, 16, 32}> (if different from fixed_size)
>   - deduce_t<T, 64> for AVX512BW targets
>   - compatible (if different from above)
>   - native (if different from above)
>
> Note that 1-4 are orthogonal and already span a huge space. I'm sure we need 
> to reduce this list, not expand.



More information about the Libstdc++ mailing list