]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite/118127: Pass fortran tests on ppc64le for IEEE128 long doubles
authorSiddhesh Poyarekar <siddhesh@gotplt.org>
Thu, 19 Dec 2024 13:09:15 +0000 (08:09 -0500)
committerSiddhesh Poyarekar <siddhesh@gotplt.org>
Wed, 29 Jan 2025 16:04:40 +0000 (11:04 -0500)
Denormal behaviour is well defined for IEEE128 long doubles, so
XFAIL some gfortran tests only for targets with the IBM128 long double
ABI.

gcc/testsuite/ChangeLog:

PR testsuite/118127
* lib/target-supports.exp
(check_effective_target_long_double_is_ibm128): New
procedure.
* gfortran.dg/default_format_2.f90: xfail for
long_double_is_ibm128.
* gfortran.dg/default_format_denormal_2.f90: Likewise.
* gfortran.dg/large_real_kind_form_io_2.f90: Likewise.

Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
(cherry picked from commit d4d4e874dee2d5b0abe5ceb9f2a78e5602e86030)

gcc/testsuite/gfortran.dg/default_format_2.f90
gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
gcc/testsuite/lib/target-supports.exp

index 5ad7b3a642953d57a736d8f6aca6d8d55ee4fb03..dd04d3aae981893f43bf2b434f6479ccd38cea74 100644 (file)
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-apple-darwin* powerpc*-*-linux* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! { dg-require-effective-target fortran_large_real }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
index e9ccf5e8f61dae346c01f620443bc1724db1e8f3..ae056d506a29d093beb02cc8e70d4220490d30ad 100644 (file)
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-*-* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! { dg-require-effective-target fortran_large_real }
 ! Test XFAILed on this platform because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
index 34b8aec462c68e0be331db365b5f4eed9e6627df..7b5ca645b62b18d1ecf93b4195242ef31da6a46a 100644 (file)
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-apple-darwin* powerpc*-*-linux* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
 ! { dg-require-effective-target fortran_large_real }
index be303e300dcda36ee066f639528381beabed2764..f8856846f02dc89a138c80db2ca278b8a74f6c9d 100644 (file)
@@ -1817,6 +1817,20 @@ proc check_effective_target_fortran_integer_16 { } {
     }]
 }
 
+# Check if long double on the target defaults to the IBM extended format.
+
+proc check_effective_target_long_double_is_ibm128 { } {
+    if { ![istarget powerpc*-*-*] } {
+      return 0
+    }
+
+    return [check_no_compiler_messages long_double_is_ibm128 assembly {
+      #ifndef __LONG_DOUBLE_IBM128__
+      #error "__LONG_DOUBLE_IBM128__ not defined"
+      #endif
+    }]
+}
+
 # Return 1 if we can statically link libgfortran, 0 otherwise.
 #
 # When the target name changes, replace the cached result.