aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog93
-rw-r--r--gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c17
-rw-r--r--gcc/testsuite/gfortran.dg/is_contiguous_5.f90126
3 files changed, 236 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 65fa7fa..4b9bd57 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,96 @@
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ * gcc.dg/pr110405.c: New.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/114025
+ * g++.dg/pr114025.C: New.
+
+2025-10-24 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122407
+ * gm2.dg/spell/iso/fail/badspellabs.mod: New test.
+ * gm2.dg/spell/iso/fail/badspelladr.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellcap.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellchr.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellchr2.mod: New test.
+ * gm2.dg/spell/iso/fail/badspelldec.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellexcl.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellinc.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellincl.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellnew.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellsize.mod: New test.
+ * gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp: New test.
+
+2025-10-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR target/122402
+ * gcc.target/aarch64/auto-init-padding-2.c: Turn off SRA.
+ * gcc.target/aarch64/auto-init-padding-4.c: Likewise.
+
+2025-10-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/122386
+ * gfortran.dg/transfer_array_subref_2.f90: New test.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ * gcc.dg/pr114725.c: New.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/118254
+ PR tree-optimization/114331
+ * gcc.dg/pr114331.c: New.
+ * gcc.dg/pr118254.c: New.
+
+2025-10-24 Alex Coplan <alex.coplan@arm.com>
+
+ * gcc.dg/torture/vect-permute-ice.c: New test.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/vect/vect-pr122406-1.c: Adjust to expect reduction
+ chain vectorization.
+ * gcc.dg/vect/vect-pr122406-2.c: Likewise.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/122406
+ * gcc.dg/vect/vect-pr122406-1.c: New testcase.
+ * gcc.dg/vect/vect-pr122406-2.c: Likewise.
+
+2025-10-24 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR fortran/121452
+ * c-c++-common/gomp/pr121452-1.c: New test.
+ * c-c++-common/gomp/pr121452-2.c: New test.
+ * gfortran.dg/gomp/pr121452-1.f90: New test.
+ * gfortran.dg/gomp/pr121452-2.f90: New test.
+ * gfortran.dg/gomp/pr121452-3.f90: New test.
+
+2025-10-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/122323
+ * gcc.target/i386/builtin-fabs-2.c: Also scan (%edi)for x32.
+
+2025-10-24 Pengfei Li <Pengfei.Li2@arm.com>
+
+ * gcc.dg/fold-vecperm-1.c: New test.
+
+2025-10-24 Olivier Hainque <hainque@adacore.com>
+
+ * lib/target-supports.exp (check_weak_available):
+ Return 1 for VxWorks7.
+
+2025-10-24 Joseph Myers <josmyers@redhat.com>
+
+ * gcc.dg/c23-static-assert-5.c, gcc.dg/c23-static-assert-6.c,
+ gcc.dg/c23-static-assert-7.c, gcc.dg/c23-static-assert-8.c,
+ gcc.dg/c2y-static-assert-2.c, gcc.dg/c2y-static-assert-3.c,
+ gcc.dg/c2y-static-assert-4.c: New tests.
+
2025-10-23 Robert Dubner <rdubner@symas.com>
* cobol.dg/group2/Length_overflow__2_.out: Updated test result.
diff --git a/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c b/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
new file mode 100644
index 0000000..e449259
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -funsafe-math-optimizations -mlasx -fno-unroll-loops -fdump-tree-optimized" } */
+/* { dg-final { scan-tree-dump-times "\.REDUC_PLUS" 4 "optimized" } } */
+
+#define DEFINE_SUM_FUNCTION(T, FUNC_NAME, SIZE) \
+T FUNC_NAME(const T arr[]) { \
+ arr = __builtin_assume_aligned(arr, 64); \
+ T sum = 0; \
+ for (int i = 0; i < SIZE; i++) \
+ sum += arr[i]; \
+ return sum; \
+}
+
+DEFINE_SUM_FUNCTION (int, sum_int_1040, 1028)
+DEFINE_SUM_FUNCTION (float, sum_float_1040, 1028)
+DEFINE_SUM_FUNCTION (long, sum_long_1040, 1026)
+DEFINE_SUM_FUNCTION (double, sum_double_1040, 1026)
diff --git a/gcc/testsuite/gfortran.dg/is_contiguous_5.f90 b/gcc/testsuite/gfortran.dg/is_contiguous_5.f90
new file mode 100644
index 0000000..091e43b5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/is_contiguous_5.f90
@@ -0,0 +1,126 @@
+! { dg-do run }
+! PR fortran/114023 - IS_CONTIGUOUS and pointers to non-contiguous targets
+!
+! Based on testcase by Federico Perini
+
+program main
+ implicit none
+ complex, parameter :: cvals(*) = [(1,-1),(2,-2),(3,-3)]
+ complex , target :: cref(size(cvals)) = cvals ! Reference
+ complex, allocatable, target :: carr(:) ! Test
+
+ type cx
+ real :: re, im
+ end type cx
+ type(cx), parameter :: tvals(*) = [cx(1,-1),cx(2,-2),cx(3,-3)]
+ real, parameter :: expect(*) = tvals% re
+ type(cx) , target :: tref(size(cvals)) = tvals ! Reference
+ type(cx), allocatable, target :: tarr(:)
+
+ real, pointer :: rr1(:), rr2(:), rr3(:), rr4(:)
+ class(*), pointer :: cp1(:), cp2(:), cp3(:), cp4(:)
+
+ carr = cvals
+ tarr = tvals
+
+ if (any (expect /= [1,2,3])) error stop 90
+
+ ! REAL pointer to non-contiguous effective target
+ rr1(1:3) => cref%re
+ rr2 => cref%re
+ rr3(1:3) => carr%re
+ rr4 => carr%re
+
+ if (is_contiguous (rr1)) stop 1
+ if (my_contiguous_real (rr1)) stop 2
+ if (is_contiguous (cref(1:3)%re)) stop 3
+! if (my_contiguous_real (cref(1:3)%re)) stop 4 ! pr122397
+
+ if (is_contiguous (rr3)) stop 6
+ if (my_contiguous_real (rr3)) stop 7
+ if (is_contiguous (carr(1:3)%re)) stop 8
+! if (my_contiguous_real (carr(1:3)%re)) stop 9
+
+ if (is_contiguous (rr2)) stop 11
+ if (my_contiguous_real (rr2)) stop 12
+ if (is_contiguous (cref%re)) stop 13
+! if (my_contiguous_real (cref%re)) stop 14
+
+ if (is_contiguous (rr4)) stop 16
+ if (my_contiguous_real (rr4)) stop 17
+ if (is_contiguous (carr%re)) stop 18
+! if (my_contiguous_real (carr%re)) stop 19
+
+ rr1(1:3) => tref%re
+ rr2 => tref%re
+ rr3(1:3) => tarr%re
+ rr4 => tarr%re
+
+ if (is_contiguous (rr1)) stop 21
+ if (my_contiguous_real (rr1)) stop 22
+ if (is_contiguous (tref(1:3)%re)) stop 23
+! if (my_contiguous_real (tref(1:3)%re)) stop 24
+
+ if (is_contiguous (rr3)) stop 26
+ if (my_contiguous_real (rr3)) stop 27
+ if (is_contiguous (tarr(1:3)%re)) stop 28
+! if (my_contiguous_real (tarr(1:3)%re)) stop 29
+
+ if (is_contiguous (rr2)) stop 31
+ if (my_contiguous_real (rr2)) stop 32
+ if (is_contiguous (tref%re)) stop 33
+! if (my_contiguous_real (tref%re)) stop 34
+
+ if (is_contiguous (rr4)) stop 36
+ if (my_contiguous_real (rr4)) stop 37
+ if (is_contiguous (tarr%re)) stop 38
+! if (my_contiguous_real (tarr%re)) stop 39
+
+ ! Unlimited polymorphic pointer to non-contiguous effective target
+ cp1(1:3) => cref%re
+ cp2 => cref%re
+ cp3(1:3) => carr%re
+ cp4 => carr%re
+
+ if (is_contiguous (cp1)) stop 41
+ if (my_contiguous_poly (cp1)) stop 42
+ if (is_contiguous (cp2)) stop 43
+ if (my_contiguous_poly (cp2)) stop 44
+ if (is_contiguous (cp3)) stop 45
+ if (my_contiguous_poly (cp3)) stop 46
+ if (is_contiguous (cp4)) stop 47
+ if (my_contiguous_poly (cp4)) stop 48
+
+ cp1(1:3) => tref%re
+ cp2 => tref%re
+ cp3(1:3) => tarr%re
+ cp4 => tarr%re
+
+ if (is_contiguous (cp1)) stop 51
+ if (my_contiguous_poly (cp1)) stop 52
+ if (is_contiguous (cp2)) stop 53
+ if (my_contiguous_poly (cp2)) stop 54
+ if (is_contiguous (cp3)) stop 55
+ if (my_contiguous_poly (cp3)) stop 56
+ if (is_contiguous (cp4)) stop 57
+ if (my_contiguous_poly (cp4)) stop 58
+
+ deallocate (carr, tarr)
+contains
+ pure logical function my_contiguous_real (x) result (res)
+ real, pointer, intent(in) :: x(:)
+ res = is_contiguous (x)
+ if (any (x /= expect)) error stop 97
+ end function my_contiguous_real
+
+ pure logical function my_contiguous_poly (x) result (res)
+ class(*), pointer, intent(in) :: x(:)
+ res = is_contiguous (x)
+ select type (x)
+ type is (real)
+ if (any (x /= expect)) error stop 98
+ class default
+ error stop 99
+ end select
+ end function my_contiguous_poly
+end