The patch documents -mprefer-vector-width which is a valid target
attribute/pragma.
Ready for master?
Thanks,
Martin
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..a14875cec37 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 inform the
+compiler to use @var{OPT}-bit vector width in instructions
+instead of 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.0