On 12/02/2015 05:46 AM, Kirill Yukhin wrote:
Hello Jakub,

On 13 Nov 13:16, Jakub Jelinek wrote:
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/attr-simd.c

Similarly.

Ok for trunk with those changes.
It turns out that current implementation of GLibC does not
contain masked variants of math routines. So, this attribute
is useless until it is capable to generation only [nonmasked|maked]
variants of the routines.

Patch in the bottom introduces `notinbranch' and `inbranch' flags to
the attribute.

Bootstrapped and regtested. New tests pass.

Is it ok for trunk (GCC v6)?

gcc/
        * c-family/c-common.c (c_common_attribute_table[]): Update max 
aerguments
        count for "simd" attribute.
        (handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments.
        * doc/extend.texi ("simd"): Describe new flags.
gcc/testsuite/
        * c-c++-common/attr-simd-4.c: New test.
        * c-c++-common/attr-simd-5.c: New test.
Why not use "unmasked" and "masked" instead of "notinbranch" and "inbranch"? If those terms come from OpenMP or are in use by other compilers (llvm, icc, whatever), then I guess we should stick with them. Otherwise we should consider [un]masked which are consistent with the vector abi document.

So I think if [not]inbranch comes from OpenMP, then this patch is OK as-is. Similarly if other compilers are using the [not]inbranch modifier. If the modifiers are totally arbitrary, then consider using [un]masked which is consistent with the vector abi documentation and the patch would be pre-approved with that change.


Jeff

Reply via email to