The 10/09/2025 10:32, Wilco Dijkstra wrote:
> Hi Alfie,
Hi Wilco, thank you for the review
>
> +/* TODO: These FMV features are not yet supported in GCC. */
> +// int fn [[gnu::target_version("dit")]] (int) {
> return 1; }
> +// int fn [[gnu::target_version("dpb")]] (int) {
> return 1; }
> +// int fn [[gnu::target_version("dpb2")]] (int) {
> return 1; }
>
> Can you fix these (and later ones)? I believe they are all supported since
> GCC15.
I don't think they are. They are supported features, but we haven't added the
fmv support yet. (see https://godbolt.org/z/dPxjjfo1T)
I plan to add support soon.
>
> + setCPUFeature (FEAT_RCPC3);
> + // if(resolver() != &fn_rcpc3) return 1; // setCPUFeature
> + (FEAT_FRINTTS); if (resolver () != &fn_frintts) return 1;
>
> Same for these.
>
> +// Checks that the versions are in the correct order
> +/* { dg-final { scan-ipa-dump-times "Version order for
> +fn/\[0-9\]+:\\nfn\.default/\[0-9\]+\\nfn\._Mrng/\[0-9\]+\\nfn\._Mflagm/
> +\[0-9\]+\\nfn\._Mflagm2/\[0-9\]+\\nfn\._Mlse/\[0-9\]+\\nfn\._Mfp/\[0-9\
> +]+\\nfn\._Msimd/\[0-9\]+\\nfn\._Mdotprod/\[0-9\]+\\nfn\._Msm4/\[0-9\]+\
> +\nfn\._MrdmaMrdm/\[0-9\]+\\nfn\._Mcrc/\[0-9\]+\\nfn\._Msha2/\[0-9\]+\\n
> +fn\._Msha3/\[0-9\]+\\nfn\._Maes/\[0-9\]+\\nfn\._Mfp16/\[0-9\]+\\nfn\._M
> +fp16fml/\[0-9\]+\\nfn\._Mjscvt/\[0-9\]+\\nfn\._Mfcma/\[0-9\]+\\nfn\._Mr
> +cpc/\[0-9\]+\\nfn\._Mrcpc2/\[0-9\]+\\nfn\._Mrcpc3/\[0-9\]+\\nfn\._Mfrin
> +tts/\[0-9\]+\\nfn\._Mi8mm/\[0-9\]+\\nfn\._Mbf16/\[0-9\]+\\nfn\._Msve/\[
> +0-9\]+\\nfn\._Mf32mm/\[0-9\]+\\nfn\._Mf64mm/\[0-9\]+\\nfn\._Msve2/\[0-9
> +\]+\\nfn\._Msve2_aes/\[0-9\]+\\nfn\._Msve2_bitperm/\[0-9\]+\\nfn\._Msve
> +2_sha3/\[0-9\]+\\nfn\._Msve2_sm4/\[0-9\]+\\nfn\._Msve2Msme/\[0-9\]+\\nf
> +n\._Msb/\[0-9\]+\\nfn\._Mwfxt/\[0-9\]+\\nfn\._Msve2Msme_f64f64/\[0-9\]+
> +\\nfn\._Msve2Msme_i16i64/\[0-9\]+\\nfn\._Msve2Msme2/\[0-9\]+\\nfn\._Mmo
> +ps/\[0-9\]+\\nfn\._Mcssc/\[0-9\]+\\n" 1 "targetclone1" } } */
>
> This is unmaintainable. Is there a way to split up this huge string across
> multiple lines?
> Eg. In C you can use line split or auto string concatenation.
I agree this is far from ideal. I asked around but cannot find any way to
break dejagnu statements over multiple lines.
What I could do is break it into many smalled statements, so instead of a check
for
fn\.default/\[0-9\]+\\nfn\._Mrng/\[0-9\]+\\nfn\._Mflagm/\[0-9\]+\\nfn\._Mflagm2/\[0-9\]+\\nfn\._Mlse/\[0-9\]+\\n
...
We have checks for:
fn\.default/\[0-9\]+\\nfn\._Mrng/\[0-9\]+\\n
fn\._Mrng/\[0-9\]+\\nfn\._Mflagm/\[0-9\]+\\n
fn\._Mflagm/\[0-9\]+\\nfn\._Mflagm2/\[0-9\]+\\n
individually.
This would achieve the same thing and be marginally better?
> Cheers,
> Wilco
--
Alfie Richards