diff options
author | Steve Ellcey <sellcey@marvell.com> | 2019-08-02 16:04:14 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2019-08-02 16:04:14 +0000 |
commit | 89eed801461a906068634574b1cbb4bbf8a84ea9 (patch) | |
tree | cdb8087c4a49e7719c056336796b02532c119483 /gcc | |
parent | e8a70c177cf66df719d080a5b46b4bede038d4b1 (diff) | |
download | gcc-89eed801461a906068634574b1cbb4bbf8a84ea9.zip gcc-89eed801461a906068634574b1cbb4bbf8a84ea9.tar.gz gcc-89eed801461a906068634574b1cbb4bbf8a84ea9.tar.bz2 |
simd_pcs_attribute.c: New test.
2019-08-02 Steve Ellcey <sellcey@marvell.com>
* gcc.target/aarch64/simd_pcs_attribute.c: New test.
* gcc.target/aarch64/simd_pcs_attribute-2.c: Ditto.
* gcc.target/aarch64/simd_pcs_attribute-3.c: Ditto.
From-SVN: r274020
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c | 16 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c | 24 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c | 16 |
4 files changed, 62 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 45d941d..5d04531 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2019-08-02 Steve Ellcey <sellcey@marvell.com> + + * gcc.target/aarch64/simd_pcs_attribute.c: New test. + * gcc.target/aarch64/simd_pcs_attribute-2.c: Ditto. + * gcc.target/aarch64/simd_pcs_attribute-3.c: Ditto. + 2019-08-02 Uroš Bizjak <ubizjak@gmail.com> PR target/91201 diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c new file mode 100644 index 0000000..8eec682 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast" } */ + +__attribute__ ((__simd__ ("notinbranch"))) +__attribute__ ((__nothrow__ , __leaf__ , __const__)) +extern double foo (double x); + +void bar(double * f, int n) +{ + int i; + for (i = 0; i < n; i++) + f[i] = foo(f[i]); +} + +/* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c new file mode 100644 index 0000000..95f6a68 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast" } */ + +__attribute__ ((__simd__)) +__attribute__ ((__nothrow__ , __leaf__ , __const__)) +double foo (double x); + +void bar(double *f, int n) +{ + int i; + for (i = 0; i < n; i++) + f[i] = foo(f[i]); +} + +double foo(double x) +{ + return x * x / 3.0; +} + +/* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c new file mode 100644 index 0000000..eddcef3 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-Ofast" } */ + +__attribute__ ((__simd__ ("notinbranch"))) +__attribute__ ((__nothrow__ , __leaf__ , __const__)) +extern double log (double __x); + +void foo(double *f, int n) +{ + int i; + for (i = 0; i < n; i++) + f[i] = log(f[i]); +} + +/* { dg-final { scan-assembler-not {\.variant_pcs\tlog} } } */ +/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_log} 1 } } */ |