static bool
aarch64_process_target_version_attr (tree args)
{
- static bool issued_warning = false;
- if (!issued_warning)
- {
- warning (OPT_Wexperimental_fmv_target,
- "Function Multi Versioning support is experimental, and the "
- "behavior is likely to change");
- issued_warning = true;
- }
-
if (TREE_CODE (args) == TREE_LIST)
{
if (TREE_CHAIN (args))
Wexperimental-fmv-target
Target Var(warn_experimental_fmv) Warning Init(1)
-Warn about usage of experimental Function Multi Versioning.
+This option is deprecated.
@opindex Wexperimental-fmv-target
@opindex Wno-experimental-fmv-target
@item -Wexperimental-fmv-target
-Warn about use of experimental Function Multi Versioning.
-The Arm C Language Extension specification for Function Multi Versioning
-is beta and subject to change. Any usage of FMV is caveated that future
-behavior change and incompatibility is likely.
+This option is deprecated.
@end table
@subsubsection @option{-march} and @option{-mcpu} Feature Modifiers
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) int
foo () { return 3; } /* { dg-message "previous declaration of .int foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\] \\(\\)." } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("default"))) int
foo () { return 1; } /* { dg-message "old declaration .int foo \\\[\\\[target_version\\(.default.\\)\\\]\\\] \\(\\)." } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
float foo () { return 1; } /* { dg-message ".float foo\\(\\). previously defined here" } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("dotprod", "sve+sve2")))
int foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("dotprod")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("default"))) int
foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) float
foo () { return 3; } /* { dg-message ".float foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\] \\(\\). previously defined here" } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) float
foo () { return 3; }
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("test"))) float
foo () { return 3; } /* { dg-error "invalid feature modifier .test. of value .test. in .target_version. attribute" } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("sve+sve2"))) int
foo();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("sve+sve2"))) int
foo () {
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) int
foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) int
foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
#pragma GCC target ("+sve")
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
int foo ()
{
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("default"))) void
foo (int a = 3);
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("default"))) int
foo () { return 1; }
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
int foo () {
return 1;
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
int foo () {
return 1;
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_version("default")))
int foo ();
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("default"))) int
foo ()
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) int
foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_version ("dotprod"))) int
foo ();
/* { dg-do compile } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
int
foo ();
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-require-ifunc "" } */
-/* { dg-options "-O0" } */
-
-__attribute__((target_version("default")))
-int foo () { return 1; }/* { dg-warning "Function Multi Versioning support is experimental, and the behavior is likely to change" } */
-
-__attribute__((target_version("rng")))
-int foo () { return 1; }
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_clones ("default, dotprod"))) float
foo (); /* { dg-message "previous declaration of .float foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\] \\(\\)." } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__ ((target_clones ("default, dotprod"))) float
foo () { return 3; } /* { dg-message "previous declaration" } */
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("default", "dotprod", "sve+sve2")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("default", "dotprod", "sve+sve2")))
int foo ()
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("default", "dotprod", "sve+sve2")))
int foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("default", "dotprod", "sve+sve2")))
int foo ();
/* { dg-do compile } */
/* { dg-require-ifunc "" } */
/* { dg-options "-O0" } */
-/* { dg-additional-options "-Wno-experimental-fmv-target" } */
__attribute__((target_clones("default", "dotprod", "sve+sve2")))
int foo () {