diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/s390')
90 files changed, 23109 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/s390/asm-machine-1.c b/gcc/testsuite/gcc.target/s390/asm-machine-1.c new file mode 100644 index 00000000000..a5326e19289 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/asm-machine-1.c @@ -0,0 +1,9 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13 -mzarch" } */ + +void foo(void) { } + +/* { dg-final { scan-assembler-not "\t\.machine " } } */ +/* { dg-final { scan-assembler-not "\t\.machinemode " } } */ diff --git a/gcc/testsuite/gcc.target/s390/asm-machine-2.c b/gcc/testsuite/gcc.target/s390/asm-machine-2.c new file mode 100644 index 00000000000..910438eb73e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/asm-machine-2.c @@ -0,0 +1,19 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13 -mzarch" } */ + +void foo(void) { } + +__attribute__ ((target("arch=z10"))) +void bar(void) { } + +/* { dg-final { scan-assembler-times "\t\.machine push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine pop" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine \"z10\"" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode zarch" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode pop" 1 } } */ + +/* { dg-final { scan-assembler-times "\t\.machine " 3 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode " 3 } } */ diff --git a/gcc/testsuite/gcc.target/s390/asm-machine-3.c b/gcc/testsuite/gcc.target/s390/asm-machine-3.c new file mode 100644 index 00000000000..b056b1933d1 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/asm-machine-3.c @@ -0,0 +1,19 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13 -mzarch" } */ + +void foo(void) { } + +#pragma GCC target("arch=z10") +void bar(void) { } + +/* { dg-final { scan-assembler-times "\t\.machine push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine pop" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine \"z10\"" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode zarch" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode pop" 1 } } */ + +/* { dg-final { scan-assembler-times "\t\.machine " 3 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode " 3 } } */ diff --git a/gcc/testsuite/gcc.target/s390/asm-machine-4.c b/gcc/testsuite/gcc.target/s390/asm-machine-4.c new file mode 100644 index 00000000000..af9ab1ccd4f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/asm-machine-4.c @@ -0,0 +1,20 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13 -mzarch" } */ + +void foo(void) { } + +#pragma GCC target("arch=z196") +__attribute__ ((target("arch=z10"))) +void bar(void) { } + +/* { dg-final { scan-assembler-times "\t\.machine push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine pop" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machine \"z10\"" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode push" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode zarch" 1 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode pop" 1 } } */ + +/* { dg-final { scan-assembler-times "\t\.machine " 3 } } */ +/* { dg-final { scan-assembler-times "\t\.machinemode " 3 } } */ diff --git a/gcc/testsuite/gcc.target/s390/s390.exp b/gcc/testsuite/gcc.target/s390/s390.exp index 0b8f80ed669..87433ddc6ef 100644 --- a/gcc/testsuite/gcc.target/s390/s390.exp +++ b/gcc/testsuite/gcc.target/s390/s390.exp @@ -24,6 +24,21 @@ if ![istarget s390*-*-*] then { # Load support procs. load_lib gcc-dg.exp +# Return 1 if the the assembler understands .machine and .machinemode. The +# target attribute needs that feature to work. +proc check_effective_target_target_attribute { } { + if { ![check_runtime s390_check_machine_machinemode [subst { + int main (void) + { + asm (".machine push" : : ); + asm (".machine pop" : : ); + asm (".machinemode push" : : ); + asm (".machinemode pop" : : ); + return 0; + } + }] "" ] } { return 0 } else { return 1 } +} + # Return 1 if htm (etnd - extract nesting depth) instructions are # understood by the assembler and can be executed. proc check_effective_target_htm { } { @@ -70,6 +85,9 @@ dg-runtest [lsort [prune [glob -nocomplain $srcdir/$subdir/*.\[cS\]] \ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*vector*/*.\[cS\]]] \ "" $DEFAULT_CFLAGS +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/target-attribute/*.\[cS\]]] \ + "" $DEFAULT_CFLAGS + # Additional hotpatch torture tests. torture-init set HOTPATCH_TEST_OPTS [list -Os -O0 -O1 -O2 -O3] diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-1.c new file mode 100644 index 00000000000..31643490540 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-1.c @@ -0,0 +1,22 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=zEC12 -mzarch" } */ + +__attribute__ ((target("arch=zEC12"))) +void htm1(void) +{ + __builtin_tend(); +} + +__attribute__ ((target("arch=z10"))) +void htm0(void) +{ + __builtin_tend(); /* { dg-error "is not supported without -mhtm" } */ +} + +void htmd(void) +{ + __builtin_tend(); +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-10.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-10.c new file mode 100644 index 00000000000..e48cea3e815 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-10.c @@ -0,0 +1,20 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-mvcle -march=z13 -O3" } */ + +#pragma GCC target("mvcle") +void p1(char *b) +{ + __builtin_memset (b, 0, 400); +} +#pragma GCC reset_options + +__attribute__ ((target("mvcle"))) +void a1(char *b) +{ + __builtin_memset (b, 0, 400); +} + +/* { dg-final { scan-assembler-times "\tmvcle\t" 2 } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-11.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-11.c new file mode 100644 index 00000000000..def418aca83 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-11.c @@ -0,0 +1,25 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-mvcle -march=z13 -O3" } */ + +#pragma GCC target("no-mvcle") +void p0(char *b) +{ + __builtin_memset (b, 0, 400); +} +#pragma GCC reset_options + +__attribute__ ((target("no-mvcle"))) +void a0(char *b) +{ + __builtin_memset (b, 0, 400); +} + +void d(char *b) +{ + __builtin_memset (b, 0, 400); +} + +/* { dg-final { scan-assembler-not "\tmvcle\t" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c new file mode 100644 index 00000000000..a22a3e11018 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-12.c @@ -0,0 +1,59 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=z13 -mstack-guard=0 -mstack-size=512" } */ + +extern char *bar(int x); + +void da(int x) +{ + bar(x); + bar(x + 1); + /* { dg-final { scan-assembler-times "\ttmll\t%r15,256" 2 { target { lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttml\t%r15,384" 2 { target { ! lp64 } } } } */ +} + +#pragma GCC target("stack-size=1024,stack-guard=0") +void p1(int x) +{ + bar(x); + bar(x + 1); + /* { dg-final { scan-assembler-times "\ttmll\t%r15,768" 1 { target { lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttml\t%r15,896" 1 { target { ! lp64 } } } } */ +} +#pragma GCC reset_options + +#pragma GCC target("stack-size=2048,stack-guard=0") +void p0(int x) +{ + bar(x); + bar(x + 1); + /* { dg-final { scan-assembler-times "\ttmll\t%r15,1792" 1 { target { lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttml\t%r15,1920" 1 { target { ! lp64 } } } } */ +} +#pragma GCC reset_options + +__attribute__ ((target("stack-size=4096,stack-guard=0"))) +void a1(int x) +{ + bar(x); + bar(x + 1); + /* { dg-final { scan-assembler-times "\ttmll\t%r15,3840" 1 { target { lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttml\t%r15,3968" 1 { target { ! lp64 } } } } */ +} + +__attribute__ ((target("stack-size=8192,stack-guard=0"))) +void a0(int x) +{ + bar(x); + bar(x + 1); + /* { dg-final { scan-assembler-times "\ttmll\t%r15,7936" 1 { target { lp64 } } } } */ + /* { dg-final { scan-assembler-times "\ttml\t%r15,8064" 1 { target { ! lp64 } } } } */ +} + +void d(int x) +{ + bar(x); + bar(x + 1); +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-13.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-13.c new file mode 100644 index 00000000000..07e0cc9ff5f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-13.c @@ -0,0 +1,18 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13" } */ + +#pragma GCC target ("zvector","zvector,arch=z13","arch=z13,zvector","zvector") +__attribute__ ((target("arch=z13","arch=z13"))) +void a(void) +{ +} + +#pragma GCC target ("arch=z13","arch=z13,arch=z13","arch=z13,arch=z13,arch=z13") +__attribute__ ((target("zvector","arch=z13"))) +void +b(void) +{ /* { dg-error "Value .zvector. is not supported by attribute .target." } */ +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-14.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-14.c new file mode 100644 index 00000000000..bddc0a943a6 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-14.c @@ -0,0 +1,50 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-small-exec" } */ + +extern void foo(void); + +#pragma GCC target("small-exec") +int p1(void) +{ + foo(); + return 1; +} +#pragma GCC reset_options + +#pragma GCC target("no-small-exec") +int p0(void) +{ + foo(); + foo(); + return 2; +} +#pragma GCC reset_options + +__attribute__ ((target("small-exec"))) +int a1(void) +{ + foo(); + foo(); + foo(); + foo(); + return 4; +} + +__attribute__ ((target("no-small-exec"))) +int a0(void) +{ + foo(); + foo(); + foo(); + foo(); + foo(); + foo(); + foo(); + foo(); + return 8; +} + +/* { dg-final { scan-assembler-times "\tbras\t" 5 } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c new file mode 100644 index 00000000000..dd0c978936b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-15.c @@ -0,0 +1,117 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-packed-stack" } */ + +extern void foo(void); + +#pragma GCC target("packed-stack") +int p1(void) +{ + foo(); + return 1; +} +#pragma GCC reset_options + +#pragma GCC target("no-packed-stack") +int p0(void) +{ + foo(); + return 2; +} +int p0b(void) +{ + foo(); + return 2; +} +#pragma GCC reset_options + +__attribute__ ((target("packed-stack"))) +int a1(void) +{ + foo(); + return 4; +} + +__attribute__ ((target("packed-stack"))) +int a1b(void) +{ + foo(); + return 4; +} + +__attribute__ ((target("packed-stack"))) +int a1c(void) +{ + foo(); + return 4; +} + +__attribute__ ((target("packed-stack"))) +int a1d(void) +{ + foo(); + return 4; +} + +__attribute__ ((target("no-packed-stack"))) +int a0(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0b(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0c(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0d(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0e(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0f(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0g(void) +{ + foo(); + return 8; +} + +__attribute__ ((target("no-packed-stack"))) +int a0h(void) +{ + foo(); + return 8; +} + +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -40" 10 { target { lp64 } } } } */ +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -8" 5 { target { lp64 } } } } */ +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -36" 10 { target { ! lp64 } } } } */ +/* { dg-final { scan-assembler-times "\t.cfi_offset 15, -4" 5 { target { ! lp64 } } } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c new file mode 100644 index 00000000000..42191b1360e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-16.c @@ -0,0 +1,97 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-msoft-float" } */ + +#pragma GCC target("hard-float") +float p1(float f) +{ + return 2 * f; +} +#pragma GCC reset_options + +#pragma GCC target("soft-float") +float p0(float f) +{ + return 2 * f; +} +float p0b(float f) +{ + return 2 * f; +} +#pragma GCC reset_options + +__attribute__ ((target("hard-float"))) +float a1(float f) +{ + return 2 * f; +} + +__attribute__ ((target("hard-float"))) +float a1b(float f) +{ + return 2 * f; +} + +__attribute__ ((target("hard-float"))) +float a1c(float f) +{ + return 2 * f; +} + +__attribute__ ((target("hard-float"))) +float a1d(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0b(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0c(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0d(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0e(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0f(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0g(float f) +{ + return 2 * f; +} + +__attribute__ ((target("soft-float"))) +float a0h(float f) +{ + return 2 * f; +} + +/* { dg-final { scan-assembler-times "\tste\t%f" 5 } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c new file mode 100644 index 00000000000..2e0fcf77ffd --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-17.c @@ -0,0 +1,42 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile { target { lp64 } } } */ +/* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-march=z13 -std=gnu99 -mno-hard-dfp" } */ + +#pragma GCC target("hard-dfp") +_Decimal64 p1(_Decimal64 f, _Decimal64 g) +{ + return f * g; + /* { dg-final { scan-assembler-times "\tmdtr\t" 1 } } */ +} +#pragma GCC reset_options + +#pragma GCC target("no-hard-dfp") + _Decimal64 p0(_Decimal64 f, _Decimal64 g) +{ + return f / 2; + /* { dg-final { scan-assembler-not "\tddtr\t" } } */ +} +#pragma GCC reset_options + +__attribute__ ((target("hard-dfp"))) +_Decimal64 a1(_Decimal64 f, _Decimal64 g) +{ + /* { dg-final { scan-assembler-times "\tadtr\t" 1 } } */ + return f + g; +} + +__attribute__ ((target("no-hard-dfp"))) +_Decimal64 a0(_Decimal64 f, _Decimal64 g) +{ + return f - g; + /* { dg-final { scan-assembler-not "\tsdtr\t" } } */ +} + +_Decimal64 d(_Decimal64 f, _Decimal64 g) +{ + return f - g; + /* { dg-final { scan-assembler-not "\tsdtr\t" } } */ +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c new file mode 100644 index 00000000000..01ae08ee17f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-2.c @@ -0,0 +1,51 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=zEC12 -mno-htm" } */ + +#pragma GCC target("htm") +void p1(void) +{ +#ifndef __HTM__ +#error __HTM__ is not defined +#endif + __builtin_tend (); +} +#pragma GCC reset_options + +#pragma GCC target("no-htm") +void p0(void) +{ +#ifdef __HTM__ +#error __HTM__ is defined +#endif + __builtin_tend (); +} +#pragma GCC reset_options + +__attribute__ ((target("htm"))) +void a1(void) +{ +#ifdef __HTM__ +#error __HTM__ is defined +#endif + __builtin_tend (); +} + +__attribute__ ((target("no-htm"))) +void a0(void) +{ +#ifdef __HTM__ +#error __HTM__ is defined +#endif + __builtin_tend (); /* { dg-error "is not supported without -mhtm" } */ +} + +void htmd(void) +{ +#ifdef __HTM__ +#error __HTM__ is defined +#endif + __builtin_tend (); /* { dg-error "is not supported without -mhtm" } */ +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c new file mode 100644 index 00000000000..95916288204 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-3.c @@ -0,0 +1,27 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=z13 -mzarch -mzvector" } */ + +#include <vecintrin.h> + +__attribute__ ((target("arch=z13"))) +void vx1(void) +{ + vec_load_bndry ((const signed char *)0, 64); + __builtin_s390_vll ((unsigned int)0, (const void *)8); +} + +__attribute__ ((target("arch=z10"))) +void vx0(void) +{ + vec_load_bndry ((const signed char *)0, 64); /* { dg-error "is not supported without -mvx" } */ + __builtin_s390_vll ((unsigned int)0, (const void *)8); /* { dg-error "is not supported without -mvx" } */ +} + +void vxd(void) +{ + vec_load_bndry ((const signed char *)0, 64); + __builtin_s390_vll ((unsigned int)0, (const void *)8); +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c new file mode 100644 index 00000000000..f0a4eff68eb --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-4.c @@ -0,0 +1,38 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=z13 -mno-vx -mno-zvector" } */ + +#include <vecintrin.h> + +#pragma GCC target("no-zvector") +__attribute__ ((target("vx"))) +void a1(void) +{ +#ifdef __VEC__ +#error __VEC__ is defined +#endif + vec_load_bndry ((const signed char *)0, 64); + __builtin_s390_vll ((unsigned int)0, (const void *)8); +} +#pragma GCC reset_options + +__attribute__ ((target("no-vx"))) +void a0(void) +{ +#ifdef __VEC__ +#error __VEC__ is defined +#endif + vec_load_bndry ((const signed char *)0, 64); /* { dg-error "is not supported without -mvx" } */ + __builtin_s390_vll ((unsigned int)0, (const void *)8); /* { dg-error "is not supported without -mvx" } */ +} + +void d(void) +{ +#ifdef __VEC__ +#error __VEC__ is defined +#endif + vec_load_bndry ((const signed char *)0, 64); /* { dg-error "is not supported without -mvx" } */ + __builtin_s390_vll ((unsigned int)0, (const void *)8); /* { dg-error "is not supported without -mvx" } */ +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-5.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-5.c new file mode 100644 index 00000000000..2a66a04114a --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-5.c @@ -0,0 +1,10 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-O3 -march=z13 -mno-zvector" } */ + +__attribute__ ((target("zvector"))) +void a1(void) +{ /* { dg-error "is not supported by attribute" } */ +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-6.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-6.c new file mode 100644 index 00000000000..531dec24edb --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-6.c @@ -0,0 +1,36 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-warn-dynamicstack" } */ + +#pragma GCC target("warn-dynamicstack") +void p1(int s) +{ + char b[s]; +} /* { dg-warning "uses dynamic stack allocation" } */ +#pragma GCC reset_options + +#pragma GCC target("no-warn-dynamicstack") +void p0(int s) +{ + char b[s]; +} +#pragma GCC reset_options + +__attribute__ ((target("warn-dynamicstack"))) +void a1(int s) +{ + char b[s]; +} /* { dg-warning "uses dynamic stack allocation" } */ + +__attribute__ ((target("no-warn-dynamicstack"))) +void a0(int s) +{ + char b[s]; +} + +void d(int s) +{ + char b[s]; +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-7.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-7.c new file mode 100644 index 00000000000..906979e9868 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-7.c @@ -0,0 +1,36 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mwarn-framesize=0" } */ + +#pragma GCC target("warn-framesize=1024") +void p1(void) +{ + char b[1025]; +} /* { dg-warning "frame size" } */ +#pragma GCC reset_options + +#pragma GCC target("warn-framesize=0") +void p0(void) +{ + char b[1025]; +} +#pragma GCC reset_options + +__attribute__ ((target("warn-framesize=1024"))) +void a1(void) +{ + char b[1025]; +} /* { dg-warning "frame size" } */ + +__attribute__ ((target("warn-framesize=0"))) +void a0(void) +{ + char b[1025]; +} + +void d(void) +{ + char b[1025]; +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-8.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-8.c new file mode 100644 index 00000000000..512bafebc3f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-8.c @@ -0,0 +1,22 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mno-backchain -march=z13 -mzarch -O0" } */ + +#include <stdio.h> + +#pragma GCC target("backchain") +void p1(void) +{ + printf ((void *)0); +} +#pragma GCC reset_options + +__attribute__ ((target("backchain"))) +void a1(void) +{ + printf ((void *)0); +} + +/* { dg-final { scan-assembler-times "\tlg?r\t%r14,%r15" 2 } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-9.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-9.c new file mode 100644 index 00000000000..b92e6878f0e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-9.c @@ -0,0 +1,22 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do compile } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mbackchain -march=z13 -mzarch -O0" } */ + +#include <stdio.h> + +#pragma GCC target("no-backchain") +void p0(void) +{ + printf ((void *)0); +} +#pragma GCC reset_options + +__attribute__ ((target("no-backchain"))) +void a0(void) +{ + printf ((void *)0); +} + +/* { dg-final { scan-assembler-not "\tlg?r\t%r14,%r15" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-1.c new file mode 100644 index 00000000000..ded08854a98 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-1.c @@ -0,0 +1,160 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mdebug -march=z13" } */ + +/** + ** no pragma + **/ + +void fn_p0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_1 tu9" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_p0_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_2 tu8" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_p0_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_3 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_p0_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_p0_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_5 tu7" } } */ + +/** + ** arch pragma + **/ + +#pragma GCC target ("arch=z9-ec") + +void fn_pa_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_1 tu5" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pa_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_2 tu8" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pa_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pa_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pa_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** tune pragma + **/ + +#pragma GCC target ("tune=z9-109") + +void fn_pt_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pt_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pt_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_3 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pt_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pt_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** arch and tune pragmas + **/ + +#pragma GCC target ("arch=z9-ec,tune=z9-109") + +void fn_pat_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pat_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pat_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pat_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pat_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** tune and arch pragmas + **/ + +#pragma GCC target ("tune=z9-109,arch=z9-ec") + +void fn_pta_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pta_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pta_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pta_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pta_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_5 tu7" } } */ + +#pragma GCC reset_options diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-2.c new file mode 100644 index 00000000000..d21a522eeb8 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-arch-tune-2.c @@ -0,0 +1,160 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-mdebug -march=z13 -mtune=z10" } */ + +/** + ** no pragma + **/ + +void fn_p0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_1 tu6" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_p0_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_2 tu6" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_p0_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_3 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_p0_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_p0_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_p0_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_p0_5 tu7" } } */ + +/** + ** arch pragma + **/ + +#pragma GCC target ("arch=z9-ec") + +void fn_pa_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_1 tu6" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pa_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_2 tu6" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pa_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pa_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pa_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pa_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pa_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** tune pragma + **/ + +#pragma GCC target ("tune=z9-109") + +void fn_pt_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pt_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pt_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_3 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pt_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pt_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pt_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pt_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** arch and tune pragmas + **/ + +#pragma GCC target ("arch=z9-ec,tune=z9-109") + +void fn_pat_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pat_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pat_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pat_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pat_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pat_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pat_5 tu7" } } */ + +#pragma GCC reset_options + +/** + ** tune and arch pragmas + **/ + +#pragma GCC target ("tune=z9-109,arch=z9-ec") + +void fn_pta_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_1 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_1 tu4" } } */ + +__attribute__ ((target("arch=zEC12"))) +void fn_pta_2 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_2 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_2 tu4" } } */ + +__attribute__ ((target("tune=z196"))) +void fn_pta_3 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_3 ar5" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_3 tu7" } } */ + +__attribute__ ((target("arch=zEC12,tune=z196"))) +void fn_pta_4 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_4 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_4 tu7" } } */ + +__attribute__ ((target("tune=z196,arch=zEC12"))) +void fn_pta_5 (void) { } +/* { dg-final { scan-assembler "fn:fn_pta_5 ar8" } } */ +/* { dg-final { scan-assembler "fn:fn_pta_5 tu7" } } */ + +#pragma GCC reset_options diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c new file mode 100644 index 00000000000..2dbb462ee08 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-1.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("arch=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("arch=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("arch=z10,arch=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("arch=z13,arch=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("arch=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("arch=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("arch=z10") +#pragma GCC target ("arch=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +#pragma GCC target ("arch=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c new file mode 100644 index 00000000000..edae1efe710 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-10.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("branch-cost=1"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("branch-cost=2"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("branch-cost=2,branch-cost=1"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("branch-cost=1,branch-cost=2"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("branch-cost=1") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("branch-cost=2") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("branch-cost=2") +#pragma GCC target ("branch-cost=1") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +#pragma GCC target ("branch-cost=2") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c new file mode 100644 index 00000000000..4b66d736882 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-11.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-framesize=512"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-framesize=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-framesize=512") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("warn-framesize=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("warn-framesize=0") +#pragma GCC target ("warn-framesize=512") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +#pragma GCC target ("warn-framesize=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c new file mode 100644 index 00000000000..515f504399f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-12.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-framesize=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-framesize=512"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-framesize=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("warn-framesize=512") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("warn-framesize=512") +#pragma GCC target ("warn-framesize=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +#pragma GCC target ("warn-framesize=512") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c new file mode 100644 index 00000000000..ef0914eb3dd --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-13.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mno-packed-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("backchain"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-backchain"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-backchain,backchain"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("backchain,no-backchain"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("backchain") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-backchain") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-backchain") +#pragma GCC target ("backchain") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +#pragma GCC target ("no-backchain") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c new file mode 100644 index 00000000000..7a7cb362706 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-14.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-backchain"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("backchain"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("backchain,no-backchain"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-backchain,backchain"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-backchain") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("backchain") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("backchain") +#pragma GCC target ("no-backchain") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +#pragma GCC target ("backchain") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c new file mode 100644 index 00000000000..e1987c0e313 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-15.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("hard-dfp"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-hard-dfp"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-hard-dfp,hard-dfp"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("hard-dfp,no-hard-dfp"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("hard-dfp") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-hard-dfp") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-hard-dfp") +#pragma GCC target ("hard-dfp") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +#pragma GCC target ("no-hard-dfp") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c new file mode 100644 index 00000000000..b99a5f3e9f3 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-16.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-hard-dfp"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("hard-dfp"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("hard-dfp,no-hard-dfp"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-hard-dfp,hard-dfp"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-hard-dfp") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("hard-dfp") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("hard-dfp") +#pragma GCC target ("no-hard-dfp") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +#pragma GCC target ("hard-dfp") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c new file mode 100644 index 00000000000..73e02286769 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-17.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mno-hard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("hard-float"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("soft-float"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("soft-float,hard-float"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("hard-float,soft-float"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("hard-float") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("soft-float") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("soft-float") +#pragma GCC target ("hard-float") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +#pragma GCC target ("soft-float") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("hard-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c new file mode 100644 index 00000000000..63407a088b7 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-18.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("soft-float"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("hard-float"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("hard-float,soft-float"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("soft-float,hard-float"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("soft-float") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("hard-float") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("hard-float") +#pragma GCC target ("soft-float") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +#pragma GCC target ("hard-float") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("soft-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c new file mode 100644 index 00000000000..b0ace81763b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-19.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("htm"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-htm"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-htm,htm"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("htm,no-htm"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("htm") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-htm") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-htm") +#pragma GCC target ("htm") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +#pragma GCC target ("no-htm") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("htm") +__attribute__ ((target ("htm"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("htm"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c new file mode 100644 index 00000000000..1e6713f9934 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-2.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("arch=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("arch=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("arch=z13,arch=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("arch=z10,arch=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("arch=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("arch=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("arch=z13") +#pragma GCC target ("arch=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +#pragma GCC target ("arch=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c new file mode 100644 index 00000000000..48fa677439b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-20.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-htm"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("htm"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("htm,no-htm"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-htm,htm"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-htm") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("htm") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("htm") +#pragma GCC target ("no-htm") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +#pragma GCC target ("htm") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("htm"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("htm"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c new file mode 100644 index 00000000000..e8a2cbad2a9 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-21.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("vx"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-vx"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-vx,vx"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("vx,no-vx"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("vx") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-vx") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-vx") +#pragma GCC target ("vx") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +#pragma GCC target ("no-vx") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("vx") +__attribute__ ((target ("vx"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("vx"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c new file mode 100644 index 00000000000..53f7c11c6ca --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-22.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-vx"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("vx"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("vx,no-vx"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-vx,vx"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-vx") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("vx") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("vx") +#pragma GCC target ("no-vx") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +#pragma GCC target ("vx") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("vx"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("vx"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c new file mode 100644 index 00000000000..79b0ac3893f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-23.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("packed-stack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-packed-stack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-packed-stack,packed-stack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("packed-stack,no-packed-stack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("packed-stack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-packed-stack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-packed-stack") +#pragma GCC target ("packed-stack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +#pragma GCC target ("no-packed-stack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c new file mode 100644 index 00000000000..8a7c6dc0763 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-24.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mno-backchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-packed-stack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("packed-stack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("packed-stack,no-packed-stack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-packed-stack,packed-stack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-packed-stack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("packed-stack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("packed-stack") +#pragma GCC target ("no-packed-stack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +#pragma GCC target ("packed-stack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c new file mode 100644 index 00000000000..926846b1ada --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-25.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("small-exec"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-small-exec"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-small-exec,small-exec"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("small-exec,no-small-exec"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("small-exec") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-small-exec") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-small-exec") +#pragma GCC target ("small-exec") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +#pragma GCC target ("no-small-exec") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c new file mode 100644 index 00000000000..1c11b6d59f5 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-26.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-small-exec"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("small-exec"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("small-exec,no-small-exec"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-small-exec,small-exec"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-small-exec") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("small-exec") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("small-exec") +#pragma GCC target ("no-small-exec") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +#pragma GCC target ("small-exec") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c new file mode 100644 index 00000000000..d93c7d4e278 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-27.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("mvcle"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-mvcle"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-mvcle,mvcle"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("mvcle,no-mvcle"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("mvcle") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-mvcle") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-mvcle") +#pragma GCC target ("mvcle") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +#pragma GCC target ("no-mvcle") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c new file mode 100644 index 00000000000..7eb069adcb1 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-28.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-mvcle"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("mvcle"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("mvcle,no-mvcle"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-mvcle,mvcle"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-mvcle") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("mvcle") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("mvcle") +#pragma GCC target ("no-mvcle") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +#pragma GCC target ("mvcle") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c new file mode 100644 index 00000000000..2e38c6eb57e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-29.c @@ -0,0 +1,177 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("zvector") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-zvector") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-zvector") +#pragma GCC target ("zvector") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("zvector") +#pragma GCC target ("no-zvector") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c new file mode 100644 index 00000000000..77739cc3054 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-3.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("tune=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("tune=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("tune=z10,tune=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("tune=z13,tune=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("tune=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("tune=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("tune=z10") +#pragma GCC target ("tune=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +#pragma GCC target ("tune=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c new file mode 100644 index 00000000000..cc882fedf90 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-30.c @@ -0,0 +1,177 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-zvector") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("zvector") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("zvector") +#pragma GCC target ("no-zvector") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-zvector") +#pragma GCC target ("zvector") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c new file mode 100644 index 00000000000..1b16c8e5fda --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-31.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-dynamicstack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ + +__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-warn-dynamicstack") +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c new file mode 100644 index 00000000000..cd0ef40a54a --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-32.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-dynamicstack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ + +__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("warn-dynamicstack") +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c new file mode 100644 index 00000000000..163f7221971 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-4.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("tune=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("tune=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("tune=z13,tune=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("tune=z10,tune=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("tune=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("tune=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("tune=z13") +#pragma GCC target ("tune=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +#pragma GCC target ("tune=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c new file mode 100644 index 00000000000..4ad1d085302 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-5.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-size=4096"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-size=2048"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-size=2048,stack-size=4096"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("stack-size=4096,stack-size=2048"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-size=4096") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("stack-size=2048") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("stack-size=2048") +#pragma GCC target ("stack-size=4096") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +#pragma GCC target ("stack-size=2048") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c new file mode 100644 index 00000000000..58ca6021385 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-6.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-size=2048"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-size=4096"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-size=4096,stack-size=2048"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("stack-size=2048,stack-size=4096"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-size=2048") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("stack-size=4096") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("stack-size=4096") +#pragma GCC target ("stack-size=2048") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +#pragma GCC target ("stack-size=4096") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c new file mode 100644 index 00000000000..2fc4c4f10e6 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-7.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-guard=16"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-guard=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-guard=0,stack-guard=16"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("stack-guard=16,stack-guard=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-guard=16") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("stack-guard=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("stack-guard=0") +#pragma GCC target ("stack-guard=16") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +#pragma GCC target ("stack-guard=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c new file mode 100644 index 00000000000..1a4dcb7084e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-8.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mesa -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-guard=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-guard=16"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-guard=16,stack-guard=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("stack-guard=0,stack-guard=16"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-guard=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("stack-guard=16") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("stack-guard=16") +#pragma GCC target ("stack-guard=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +#pragma GCC target ("stack-guard=16") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c new file mode 100644 index 00000000000..d4304f91d33 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m31-9.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { ! lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m31 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("branch-cost=2"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("branch-cost=1"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("branch-cost=1,branch-cost=2"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("branch-cost=2,branch-cost=1"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("branch-cost=2") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("branch-cost=1") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("branch-cost=1") +#pragma GCC target ("branch-cost=2") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +#pragma GCC target ("branch-cost=1") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-1.c new file mode 100644 index 00000000000..73003f0e4c3 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-1.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("arch=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("arch=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("arch=z10,arch=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("arch=z13,arch=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("arch=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("arch=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("arch=z10") +#pragma GCC target ("arch=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +#pragma GCC target ("arch=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z13") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-10.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-10.c new file mode 100644 index 00000000000..7d33c89c93f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-10.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("branch-cost=1"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("branch-cost=2"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("branch-cost=2,branch-cost=1"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("branch-cost=1,branch-cost=2"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("branch-cost=1") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("branch-cost=2") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("branch-cost=2") +#pragma GCC target ("branch-cost=1") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +#pragma GCC target ("branch-cost=2") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=1") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-11.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-11.c new file mode 100644 index 00000000000..4737e9cbf3b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-11.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-framesize=512"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-framesize=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-framesize=512") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("warn-framesize=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("warn-framesize=0") +#pragma GCC target ("warn-framesize=512") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +#pragma GCC target ("warn-framesize=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=512") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-12.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-12.c new file mode 100644 index 00000000000..71addb85dee --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-12.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-framesize=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-framesize=512"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-framesize=512,warn-framesize=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("warn-framesize=0,warn-framesize=512"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-framesize=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("warn-framesize=512") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("warn-framesize=512") +#pragma GCC target ("warn-framesize=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +#pragma GCC target ("warn-framesize=512") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-framesize=0") +__attribute__ ((target ("warn-framesize=512"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-13.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-13.c new file mode 100644 index 00000000000..27e3ec52736 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-13.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mno-packed-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("backchain"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-backchain"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-backchain,backchain"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("backchain,no-backchain"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("backchain") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-backchain") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-backchain") +#pragma GCC target ("backchain") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +#pragma GCC target ("no-backchain") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-14.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-14.c new file mode 100644 index 00000000000..9eb0cc58323 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-14.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-backchain"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("backchain"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("backchain,no-backchain"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-backchain,backchain"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-backchain") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("backchain") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("backchain") +#pragma GCC target ("no-backchain") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +#pragma GCC target ("backchain") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("no-backchain"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-backchain") +__attribute__ ((target ("backchain"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-15.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-15.c new file mode 100644 index 00000000000..3818ccdc57c --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-15.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("hard-dfp"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-hard-dfp"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-hard-dfp,hard-dfp"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("hard-dfp,no-hard-dfp"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("hard-dfp") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-hard-dfp") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-hard-dfp") +#pragma GCC target ("hard-dfp") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +#pragma GCC target ("no-hard-dfp") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-16.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-16.c new file mode 100644 index 00000000000..16600294c3e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-16.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-hard-dfp"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("hard-dfp"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("hard-dfp,no-hard-dfp"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-hard-dfp,hard-dfp"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-hard-dfp") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("hard-dfp") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("hard-dfp") +#pragma GCC target ("no-hard-dfp") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +#pragma GCC target ("hard-dfp") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("no-hard-dfp"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-hard-dfp") +__attribute__ ((target ("hard-dfp"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-17.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-17.c new file mode 100644 index 00000000000..39e588d0b17 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-17.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mno-hard-dfp -mno-backchain -mhard-float -mno-vx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("hard-float"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("soft-float"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("soft-float,hard-float"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("hard-float,soft-float"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("hard-float") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("soft-float") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("soft-float") +#pragma GCC target ("hard-float") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +#pragma GCC target ("soft-float") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("hard-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("hard-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-18.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-18.c new file mode 100644 index 00000000000..0b682425c80 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-18.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("soft-float"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("hard-float"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("hard-float,soft-float"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("soft-float,hard-float"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("soft-float") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("hard-float") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("hard-float") +#pragma GCC target ("soft-float") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +#pragma GCC target ("hard-float") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("soft-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("soft-float"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("soft-float") +__attribute__ ((target ("hard-float"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-19.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-19.c new file mode 100644 index 00000000000..408800208ef --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-19.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("htm"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-htm"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-htm,htm"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("htm,no-htm"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("htm") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-htm") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-htm") +#pragma GCC target ("htm") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +#pragma GCC target ("no-htm") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("htm") +__attribute__ ((target ("htm"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("htm"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-2.c new file mode 100644 index 00000000000..55a86bf0bc1 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-2.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("arch=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("arch=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("arch=z13,arch=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("arch=z10,arch=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("arch=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("arch=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("arch=z13") +#pragma GCC target ("arch=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +#pragma GCC target ("arch=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("arch=z10") +__attribute__ ((target ("arch=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-20.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-20.c new file mode 100644 index 00000000000..d2b6566f8a5 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-20.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-htm"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("htm"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("htm,no-htm"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-htm,htm"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-htm") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("htm") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("htm") +#pragma GCC target ("no-htm") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +#pragma GCC target ("htm") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("no-htm"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("htm"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-htm") +__attribute__ ((target ("htm"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-21.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-21.c new file mode 100644 index 00000000000..441e6bcb6ca --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-21.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("vx"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-vx"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-vx,vx"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("vx,no-vx"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("vx") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-vx") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-vx") +#pragma GCC target ("vx") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +#pragma GCC target ("no-vx") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("vx") +__attribute__ ((target ("vx"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("vx"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-22.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-22.c new file mode 100644 index 00000000000..e954106fd04 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-22.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -mhard-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-vx"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("vx"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("vx,no-vx"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-vx,vx"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-vx") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("vx") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("vx") +#pragma GCC target ("no-vx") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +#pragma GCC target ("vx") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("no-vx"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("vx"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-vx") +__attribute__ ((target ("vx"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-23.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-23.c new file mode 100644 index 00000000000..6e6b37ac4b3 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-23.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("packed-stack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-packed-stack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-packed-stack,packed-stack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("packed-stack,no-packed-stack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("packed-stack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-packed-stack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-packed-stack") +#pragma GCC target ("packed-stack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +#pragma GCC target ("no-packed-stack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-24.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-24.c new file mode 100644 index 00000000000..b97454fbac3 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-24.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mno-backchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-packed-stack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("packed-stack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("packed-stack,no-packed-stack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-packed-stack,packed-stack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-packed-stack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("packed-stack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("packed-stack") +#pragma GCC target ("no-packed-stack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +#pragma GCC target ("packed-stack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("no-packed-stack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-packed-stack") +__attribute__ ((target ("packed-stack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-25.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-25.c new file mode 100644 index 00000000000..46c41ccc02b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-25.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("small-exec"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-small-exec"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-small-exec,small-exec"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("small-exec,no-small-exec"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("small-exec") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-small-exec") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-small-exec") +#pragma GCC target ("small-exec") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +#pragma GCC target ("no-small-exec") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-26.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-26.c new file mode 100644 index 00000000000..957d65810bc --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-26.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-small-exec"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("small-exec"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("small-exec,no-small-exec"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-small-exec,small-exec"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-small-exec") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("small-exec") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("small-exec") +#pragma GCC target ("no-small-exec") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +#pragma GCC target ("small-exec") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("no-small-exec"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-small-exec") +__attribute__ ((target ("small-exec"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-27.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-27.c new file mode 100644 index 00000000000..59b58121a22 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-27.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("mvcle"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-mvcle"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-mvcle,mvcle"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("mvcle,no-mvcle"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("mvcle") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-mvcle") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-mvcle") +#pragma GCC target ("mvcle") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +#pragma GCC target ("no-mvcle") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-28.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-28.c new file mode 100644 index 00000000000..77201274c06 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-28.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-mvcle"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("mvcle"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("mvcle,no-mvcle"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("no-mvcle,mvcle"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-mvcle") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("mvcle") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("mvcle") +#pragma GCC target ("no-mvcle") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +#pragma GCC target ("mvcle") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("no-mvcle"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-mvcle") +__attribute__ ((target ("mvcle"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-29.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-29.c new file mode 100644 index 00000000000..c5bbfaf1c43 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-29.c @@ -0,0 +1,177 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("zvector") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-zvector") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-zvector") +#pragma GCC target ("zvector") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("zvector") +#pragma GCC target ("no-zvector") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-3.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-3.c new file mode 100644 index 00000000000..948da10d29b --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-3.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("tune=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("tune=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("tune=z10,tune=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("tune=z13,tune=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("tune=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("tune=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("tune=z10") +#pragma GCC target ("tune=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +#pragma GCC target ("tune=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z13") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-30.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-30.c new file mode 100644 index 00000000000..6aa813b7ff5 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-30.c @@ -0,0 +1,177 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-zvector") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("zvector") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("zvector") +#pragma GCC target ("no-zvector") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-zvector") +#pragma GCC target ("zvector") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-31.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-31.c new file mode 100644 index 00000000000..5227e9acdd6 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-31.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("warn-dynamicstack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ + +__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("no-warn-dynamicstack") +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-32.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-32.c new file mode 100644 index 00000000000..5d9eef7afda --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-32.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("warn-dynamicstack"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("warn-dynamicstack,no-warn-dynamicstack"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ + +__attribute__ ((target ("no-warn-dynamicstack,warn-dynamicstack"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("warn-dynamicstack") +#pragma GCC target ("no-warn-dynamicstack") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +#pragma GCC target ("warn-dynamicstack") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("no-warn-dynamicstack"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("no-warn-dynamicstack") +__attribute__ ((target ("warn-dynamicstack"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-4.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-4.c new file mode 100644 index 00000000000..9b50913e3d9 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-4.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("tune=z10"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("tune=z13"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("tune=z13,tune=z10"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("tune=z10,tune=z13"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("tune=z10") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("tune=z13") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("tune=z13") +#pragma GCC target ("tune=z10") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +#pragma GCC target ("tune=z13") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z10"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("tune=z10") +__attribute__ ((target ("tune=z13"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-5.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-5.c new file mode 100644 index 00000000000..bfc8803390c --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-5.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-size=4096"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-size=2048"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-size=2048,stack-size=4096"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("stack-size=4096,stack-size=2048"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-size=4096") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("stack-size=2048") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("stack-size=2048") +#pragma GCC target ("stack-size=4096") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +#pragma GCC target ("stack-size=2048") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=4096") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-6.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-6.c new file mode 100644 index 00000000000..b3bc0f6f8b5 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-6.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-size=2048"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-size=4096"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-size=4096,stack-size=2048"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("stack-size=2048,stack-size=4096"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-size=2048") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("stack-size=4096") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("stack-size=4096") +#pragma GCC target ("stack-size=2048") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +#pragma GCC target ("stack-size=4096") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=2048"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-size=2048") +__attribute__ ((target ("stack-size=4096"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-7.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-7.c new file mode 100644 index 00000000000..ac0b08d1a63 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-7.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-guard=16"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-guard=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-guard=0,stack-guard=16"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("stack-guard=16,stack-guard=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-guard=16") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("stack-guard=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("stack-guard=0") +#pragma GCC target ("stack-guard=16") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +#pragma GCC target ("stack-guard=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=16") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-8.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-8.c new file mode 100644 index 00000000000..9ceca50395e --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-8.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z10 -mtune=z13 -mstack-size=2048 -mstack-guard=16 -mbranch-cost=1 -mwarn-framesize=512 -mno-hard-dfp -mbackchain -msoft-float -mno-vx -mno-htm -mno-packed-stack -msmall-exec -mno-zvector -mmvcle -mzarch -mno-warn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd0" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("stack-guard=0"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd0" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("stack-guard=16"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd0" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("stack-guard=16,stack-guard=0"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd0" } } */ + +__attribute__ ((target ("stack-guard=0,stack-guard=16"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd0" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("stack-guard=0") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd0" } } */ + +#pragma GCC target ("stack-guard=16") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd0" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd0" } } */ + +#pragma GCC target ("stack-guard=16") +#pragma GCC target ("stack-guard=0") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +#pragma GCC target ("stack-guard=16") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=0"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd0" } } */ +#pragma GCC reset_options + +#pragma GCC target ("stack-guard=0") +__attribute__ ((target ("stack-guard=16"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd0" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss2048" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg16" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf512" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd0" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-9.c b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-9.c new file mode 100644 index 00000000000..ac6355561e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tattr-m64-9.c @@ -0,0 +1,353 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do assemble { target { lp64 } } } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-options "-save-temps -mdebug -m64 -march=z13 -mtune=z10 -mstack-size=4096 -mstack-guard=0 -mbranch-cost=2 -mwarn-framesize=0 -mhard-dfp -mno-backchain -mhard-float -mvx -mhtm -mpacked-stack -mno-small-exec -mzvector -mno-mvcle -mzarch -mwarn-dynamicstack" } */ + +/** + ** + ** Start + ** + **/ + +void fn_default_start (void) { } +/* { dg-final { scan-assembler "fn:fn_default_start ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_start wd1" } } */ + +/** + ** + ** Attribute + ** + **/ + +__attribute__ ((target ("branch-cost=2"))) +void fn_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1 wd1" } } */ + +void fn_att_1_default (void) { } + +__attribute__ ((target ("branch-cost=1"))) +void fn_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0 wd1" } } */ + +void fn_att_0_default (void) { } + +__attribute__ ((target ("branch-cost=1,branch-cost=2"))) +void fn_att_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_0_1 wd1" } } */ + +__attribute__ ((target ("branch-cost=2,branch-cost=1"))) +void fn_att_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_att_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_att_1_0 wd1" } } */ + +/** + ** + ** Pragma + ** + **/ + +#pragma GCC target ("branch-cost=2") +void fn_pragma_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_1_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_default wd1" } } */ + +#pragma GCC target ("branch-cost=1") +void fn_pragma_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0 wd1" } } */ +#pragma GCC reset_options + +void fn_pragma_0_default (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_default wd1" } } */ + +#pragma GCC target ("branch-cost=1") +#pragma GCC target ("branch-cost=2") +void fn_pragma_0_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +#pragma GCC target ("branch-cost=1") +void fn_pragma_1_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** Pragma and attribute + ** + **/ + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_1_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=2"))) +void fn_pragma_0_att_1 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_1 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_1_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_1_att_0 wd1" } } */ +#pragma GCC reset_options + +#pragma GCC target ("branch-cost=2") +__attribute__ ((target ("branch-cost=1"))) +void fn_pragma_0_att_0 (void) { } +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 bc1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 se0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_pragma_0_att_0 wd1" } } */ +#pragma GCC reset_options + +/** + ** + ** End + ** + **/ + +void fn_default_end (void) { } +/* { dg-final { scan-assembler "fn:fn_default_end ar9" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end tu6" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ss4096" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end sg0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end bc2" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wf0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hd1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ba0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end hf1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end vx1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ht1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end ps1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end se0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end zv1" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end mv0" } } */ +/* { dg-final { scan-assembler "fn:fn_default_end wd1" } } */ diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c b/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c new file mode 100644 index 00000000000..d471033a584 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c @@ -0,0 +1,62 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do run } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-require-effective-target vector } */ +/* { dg-options "-march=z900 -mno-vx -mzarch" } */ + +#define V16 __attribute__ ((vector_size(16))) +#pragma GCC push_options +#pragma GCC target ("arch=z13,vx") +__attribute__ ((noinline)) +void foo (char *d, int *off) +{ + typedef struct + { + char c; + V16 char vc; + } s_t; + s_t s = { 1,{ 0,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151 }}; + *off = __builtin_offsetof(s_t, vc); + __builtin_memcpy(d, &s.vc, 16); +} +#pragma GCC pop_options + +#pragma GCC push_options +#pragma GCC target ("arch=z13,no-vx") +__attribute__ ((noinline)) +void bar (char *d, int *off) +{ + typedef struct + { + char c; + V16 char vc; + } s_t; + s_t s = { 1,{ 0,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151 }}; + *off = __builtin_offsetof(s_t, vc); + __builtin_memcpy(d, &s.vc, 16); +} +#pragma GCC pop_options + +int main(int argc, char **argv) +{ + char buf[16] = { 0 }; + char buf2[16] = { 0 }; + int off = 0; + int off2 = 0; + int rc; + + rc = 0; + foo(buf, &off); + if (off != 8) + rc += 1; + if (buf[7] != 77) + rc += 2; + bar (buf2, &off2); + if (off2 != 16) + rc += 4; + if (buf2[6] != 66) + rc += 8; + + return rc; +} diff --git a/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-2.c b/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-2.c new file mode 100644 index 00000000000..a238dce1c2f --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-2.c @@ -0,0 +1,62 @@ +/* Functional tests for the "target" attribute and pragma. */ + +/* { dg-do run } */ +/* { dg-require-effective-target target_attribute } */ +/* { dg-require-effective-target vector } */ +/* { dg-options "-march=z13 -mvx -mzarch" } */ + +#define V16 __attribute__ ((vector_size(16))) +#pragma GCC push_options +#pragma GCC target ("arch=z900,no-vx") +__attribute__ ((noinline)) +void foo (char *d, int *off) +{ + typedef struct + { + char c; + V16 char vc; + } s_t; + s_t s = { 1,{ 0,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151 }}; + *off = __builtin_offsetof(s_t, vc); + __builtin_memcpy(d, &s.vc, 16); +} +#pragma GCC pop_options + +#pragma GCC push_options +#pragma GCC target ("no-vx") +__attribute__ ((noinline)) +void bar (char *d, int *off) +{ + typedef struct + { + char c; + V16 char vc; + } s_t; + s_t s = { 1,{ 0,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151 }}; + *off = __builtin_offsetof(s_t, vc); + __builtin_memcpy(d, &s.vc, 16); +} +#pragma GCC pop_options + +int main(int argc, char **argv) +{ + char buf[16] = { 0 }; + char buf2[16] = { 0 }; + int off = 0; + int off2 = 0; + int rc; + + rc = 0; + foo(buf, &off); + if (off != 16) + rc += 1; + if (buf[7] != 77) + rc += 2; + bar (buf2, &off2); + if (off2 != 16) + rc += 4; + if (buf2[6] != 66) + rc += 8; + + return rc; +} |