From 5eb792e7a12ad214e5295e3f664637078936213f Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 3 Feb 2021 14:32:04 +0100 Subject: [PATCH] doc: mention -mprefer-vector-width in target attrs gcc/ChangeLog: * doc/extend.texi: Mention -mprefer-vector-width in target attributes. gcc/testsuite/ChangeLog: * gcc.target/i386/prefer-vector-width-attr.c: New test. --- gcc/doc/extend.texi | 22 +++++++++++++++++++ .../i386/prefer-vector-width-attr.c | 11 ++++++++++ 2 files changed, 33 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 8daa1c67974..2cfd8cdf883 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -7020,6 +7020,28 @@ On x86 targets, the @code{fentry_section} attribute sets the name of the section to record function entry instrumentation calls in when enabled with @option{-pg -mrecord-mcount} +@item prefer-vector-width=@var{OPT} +@cindex @code{prefer-vector-width} function attribute, x86 +On x86 targets, the @code{prefer-vector-width} attribute informs the +compiler to use @var{OPT}-bit vector width in instructions +instead of the default on the selected platform. + +Valid @var{OPT} values are: + +@table @samp +@item none +No extra limitations applied to GCC other than defined by the selected platform. + +@item 128 +Prefer 128-bit vector width for instructions. + +@item 256 +Prefer 256-bit vector width for instructions. + +@item 512 +Prefer 512-bit vector width for instructions. +@end table + @end table On the x86, the inliner does not inline a diff --git a/gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c b/gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c new file mode 100644 index 00000000000..3929f909a44 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ + +#pragma GCC push_options +#pragma GCC target("prefer-vector-width=512") + +int +__attribute__((target("prefer-vector-width=none"))) +main() +{ + return 0; +} -- 2.30.2