diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 41 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection1.C | 40 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection2.C | 40 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection3.C | 25 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection4.C | 30 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection5.C | 28 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection6.C | 27 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/aarch64/fmv-selection7.C | 65 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pdt_51.f03 | 57 | ||||
-rw-r--r-- | gcc/testsuite/lib/sarif.py | 1 |
12 files changed, 355 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a4c4a17..a7d81ad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,44 @@ +2025-09-30 David Malcolm <dmalcolm@redhat.com> + + * lib/sarif.py: Remove import of ET. + +2025-09-30 Alfie Richards <alfie.richards@arm.com> + + * g++.target/aarch64/fmv-selection1.C: New test. + * g++.target/aarch64/fmv-selection2.C: New test. + * g++.target/aarch64/fmv-selection3.C: New test. + * g++.target/aarch64/fmv-selection4.C: New test. + * g++.target/aarch64/fmv-selection5.C: New test. + * g++.target/aarch64/fmv-selection6.C: New test. + * g++.target/aarch64/fmv-selection7.C: New test. + +2025-09-30 Jakub Jelinek <jakub@redhat.com> + + * gcc.dg/vect/tsvc/vect-tsvc-s1244.c (s1244): Fix comment typo, + ture -> true. + * gcc.dg/vect/tsvc/vect-tsvc-s2244.c (s2244): Likewise. + +2025-09-30 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/reduce1.adb: New test. + +2025-09-30 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/105380 + PR fortran/102241 + * gfortran.dg/pdt_49.f03: New test. + * gfortran.dg/pdt_11.f03: Deallocate 'o_fdef'. + * gfortran.dg/pdt_15.f03: Reinstate final 'pop_8' and update + the tree dump counts. + * gfortran.dg/pdt_20.f03: Deallocate 'x'. + * gfortran.dg/pdt_23.f03: Deallocate 'x'. + * gfortran.dg/pdt_3.f03: Eliminate the temporary 'matrix' and + use w%d directly in the allocation. Change the TODO comment and + comment on memory leak in allocation. + * gfortran.dg/pdt_39.f03: Comments on memory leaks. + * gfortran.dg/pdt_40.f03: Deallocate 'foo' and bar%x. + * gfortran.dg/pdt_50.f03: New test. + 2025-09-29 YunQiang Su <yunqiang@isrc.iscas.ac.cn> * gcc.target/mips/pr99217-2.c: New test. diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection1.C b/gcc/testsuite/g++.target/aarch64/fmv-selection1.C new file mode 100644 index 0000000..4ee5446 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection1.C @@ -0,0 +1,40 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 1; +} + +__attribute__((target_version("rng"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 2; +} + +__attribute__((target_version("flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 3; +} + +__attribute__((target_version("rng+flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 4; +} + +int bar() +{ + return foo (); +} + +/* Cannot optimize */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection2.C b/gcc/testsuite/g++.target/aarch64/fmv-selection2.C new file mode 100644 index 0000000..f580dac --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection2.C @@ -0,0 +1,40 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a+rng+flagm" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 1; +} + +__attribute__((target_version("rng"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 2; +} + +__attribute__((target_version("flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 3; +} + +__attribute__((target_version("rng+flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 4; +} + +int bar() +{ + return foo (); +} + +/* Can optimize to highest priority function */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection3.C b/gcc/testsuite/g++.target/aarch64/fmv-selection3.C new file mode 100644 index 0000000..6b52fd4 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection3.C @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("rng+flagm"))) +int bar() +{ + return foo (); +} + +/* Cannot optimize */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection4.C b/gcc/testsuite/g++.target/aarch64/fmv-selection4.C new file mode 100644 index 0000000..155145d --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection4.C @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("rng"))) +int bar(); + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection5.C b/gcc/testsuite/g++.target/aarch64/fmv-selection5.C new file mode 100644 index 0000000..4d6d38e --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection5.C @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection6.C b/gcc/testsuite/g++.target/aarch64/fmv-selection6.C new file mode 100644 index 0000000..db384e1 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection6.C @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a+rng" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._Mrng\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection7.C b/gcc/testsuite/g++.target/aarch64/fmv-selection7.C new file mode 100644 index 0000000..41e7462 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection7.C @@ -0,0 +1,65 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +[[gnu::optimize("O0")]] +[[gnu::target_version ("default")]] +int bar () { + return 1; +} + +[[gnu::optimize("O0")]] +[[gnu::target ("+sve2")]] +[[gnu::target_version ("sve")]] +int bar (); + +[[gnu::target ("+sve")]] +int foo () { + return bar(); +} + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3barv\._Msve\n" 1 } } */ + +[[gnu::target_version ("default")]] +int bar2 () { + return 1; +} + +[[gnu::target_version ("sve2")]] +int bar2 (); + +[[gnu::target_version ("default")]] +int foo2 (); + +[[gnu::target_version ("sve")]] +[[gnu::target ("+sve2")]] +int foo2 () { + return bar2(); +} + +/* { dg-final { scan-assembler-times "\n\tb\t_Z4bar2v\._Msve2\n" 1 } } */ + +[[gnu::target_version ("default")]] +int bar3 () { + return 1; +} + +[[gnu::target_version ("sve")]] +int bar3 (); + +[[gnu::target ("+rng")]] +[[gnu::target_version ("sve2")]] +int bar3 (); + +[[gnu::target_version ("default")]] +int foo3 (); + +[[gnu::target_version ("sve")]] +int foo3 () { + return bar3 (); +} + +[[gnu::target_version ("sve2+rng")]] +int foo3 (); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z4bar3v\n" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c b/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c index 94a3041..3b76bb3 100644 --- a/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c +++ b/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c @@ -9,7 +9,7 @@ real_t s1244(struct args_t * func_args) { // node splitting -// cycle with ture and anti dependency +// cycle with true and anti dependency initialise_arrays(__func__); diff --git a/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c b/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c index 9b0ca74..277ebb8 100644 --- a/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c +++ b/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c @@ -9,7 +9,7 @@ real_t s2244(struct args_t * func_args) { // node splitting -// cycle with ture and anti dependency +// cycle with true and anti dependency initialise_arrays(__func__); diff --git a/gcc/testsuite/gfortran.dg/pdt_51.f03 b/gcc/testsuite/gfortran.dg/pdt_51.f03 new file mode 100644 index 0000000..46697bf --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_51.f03 @@ -0,0 +1,57 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original" } +! +! Test the fix for PR122089 in which the generic interface checking failed. +! +! Contributed by Damian Rouson <damian@archaeologic.codes> +! +module tensor_m + implicit none + + type tensor_t(k) + integer, kind :: k = kind(1.) + real(k) values_ + contains + generic :: values => double_precision_values + procedure double_precision_values + end type + +contains + function double_precision_values(self) + class(tensor_t(kind(1D0))) self + double precision double_precision_values + double_precision_values = self%values_ + end function +end module + +module input_output_pair_m + use tensor_m, only : tensor_t + implicit none + + type input_output_pair_t(k) + integer, kind :: k = kind(1.) + type(tensor_t(k)) inputs_ + end type + + interface + module subroutine double_precision_write_to_stdout(input_output_pairs) + implicit none + type(input_output_pair_t(kind(1D0))) input_output_pairs + end subroutine + end interface +end module + +submodule(input_output_pair_m) input_output_pair_s + implicit none +contains + module procedure double_precision_write_to_stdout + print *, input_output_pairs%inputs_%values() + end procedure +end submodule + + use input_output_pair_m + type(input_output_pair_t(kind(1d0))) :: tgt + tgt%inputs_%values_ = 42d0 + call double_precision_write_to_stdout(tgt) +end +! { dg-final { scan-tree-dump-times "double_precision_write_to_stdout \\(&tgt\\);" 1 "original" } } diff --git a/gcc/testsuite/lib/sarif.py b/gcc/testsuite/lib/sarif.py index d75a87e..f0b3ddd 100644 --- a/gcc/testsuite/lib/sarif.py +++ b/gcc/testsuite/lib/sarif.py @@ -1,6 +1,5 @@ import json import os -import xml.etree.ElementTree as ET def sarif_from_env(): # return parsed JSON content a SARIF_PATH file |