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