doc: mention -mprefer-vector-width in target attrs
authorMartin Liska <mliska@suse.cz>
Wed, 3 Feb 2021 13:32:04 +0000 (14:32 +0100)
committerMartin Liska <mliska@suse.cz>
Thu, 4 Feb 2021 09:42:10 +0000 (10:42 +0100)
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
gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c [new file with mode: 0644]

index 8daa1c6..2cfd8cd 100644 (file)
@@ -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 (file)
index 0000000..3929f90
--- /dev/null
@@ -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;
+}