Re: What CPU extensions can we assume are available by arch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kevin Kofler wrote

>>Florian Weimer wrote:
>>...
>> In general, that is not true. You can use the target function attribute and function
>> multiversioning instead in many cases.

>This may (or may not) have been recently fixed, but last I checked, intrinsics for a vector
>instruction set XYZ2 were only available with the corresponding -mxyz2 flag, which could
>only be set per compilation unit (attempting to use the recently introduced flag pragmas for
>this purpose was not supported either), and which would lead to GCC in some cases
>(out of the library programmer's control) using XYZ2 instructions also in other functions.
>As a result, the only safe way was to put all XYZ2 code in a separate compilation unit
>compiled with -mxyz2 (and only that compilation unit can use that flag). Has that situation
> mproved recently (and how so)?
>
>And that is just for C or non-template C++ code. C++
> template instantiations make the situation even messier.

Yes still true. I encounter this implement vec_int512_ppc.h for pveclib. There a easy to use work around described here Putting the library in PVECLIB. I will not claim this is elegant but it does work.

My goal (pveclib) is to make it easier to write vector codes that CAN be used in functions that CAN be built for multiple processor targets and dynamic selection. My case is simpler then x86 (and SIMDE) as for ppc64le I only have to deal with power8/9.

This a hard problem, and not solution is ease or perfect. But we can improve

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux