From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id 9BE8C3858D32; Tue, 13 Jun 2023 11:11:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9BE8C3858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.00,239,1681200000"; d="scan'208";a="9699322" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa1.mentor.iphmx.com with ESMTP; 13 Jun 2023 03:11:48 -0800 IronPort-SDR: D/lWFU411DsTlqk0cNtmgQh8kJv4BtuXkO89OaIOzch5IWQpQMBcFFECiYeg+0Nfy8Oll+tusM Kxa9UlUGw9VHVC+ECjJMW5A7Q3Vg8K/tiMhDF6xG8LnvsSB0lrCOJhp2SZIGKnSlFYZKncBhN/ gvRMPLnSvGGV4IKwsK0kEkoJSFnaYT2luZ2tyrRYojIAIlU/NZ1wYsZ8FYFoNWyhsYlDzBFojk zASx9qRDNwngfEYRTr29CJP9Gq9y4dOeh9l/zj/hy+mvID/sjrNNgGT27NZG+ACEyCpOL5G9ah gJA= Message-ID: Date: Tue, 13 Jun 2023 13:11:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [ping] Add 'libgomp.{,oacc-}fortran/fortran-torture_execute_math.f90' Content-Language: en-US To: Thomas Schwinge , , , Jakub Jelinek References: <87cz2aqezb.fsf@euler.schwinge.homeip.net> <87ttvb7ied.fsf@euler.schwinge.homeip.net> From: Tobias Burnus In-Reply-To: <87ttvb7ied.fsf@euler.schwinge.homeip.net> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 13.06.23 12:42, Thomas Schwinge wrote: > On 2023-06-05T14:18:48+0200, I wrote: >> OK to push the attached >> "Add 'libgomp.{,oacc-}fortran/fortran-torture_execute_math.f90'"? > > Subject: [PATCH] Add > 'libgomp.{,oacc-}fortran/fortran-torture_execute_math.f90' > > gcc/testsuite/ > * gfortran.fortran-torture/execute/math.f90: Enhance for optional > OpenACC, OpenMP 'target' usage. I think it is more readable with a linebreak here and with "OpenACC 'serial' and OpenMP ..." instead of "OpenACC, OpenMP". What I would like to see a hint somewhere in the commit log that the libgomp files include the gfortran.fortran-torture file. I don't care whether you add the hint before the changelog items as free text =E2=80=93 = or in the bullet above (e.g. "as it is included in libgomp/testsuite") =E2=80=93 = or after "New." in the following bullet list. > libgomp/ > * testsuite/libgomp.fortran/fortran-torture_execute_math.f90: New. > * testsuite/libgomp.oacc-fortran/fortran-torture_execute_math.f90: > Likewise. > --- > .../gfortran.fortran-torture/execute/math.f90 | 23 +++++++++++++++++-- > .../fortran-torture_execute_math.f90 | 4 ++++ > .../fortran-torture_execute_math.f90 | 5 ++++ > 3 files changed, 30 insertions(+), 2 deletions(-) > create mode 100644 libgomp/testsuite/libgomp.fortran/fortran-torture_ex= ecute_math.f90 > create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/fortran-tortu= re_execute_math.f90 > > diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/math.f90 b/gc= c/testsuite/gfortran.fortran-torture/execute/math.f90 > index 17cc78f7a10..e71f669304f 100644 > --- a/gcc/testsuite/gfortran.fortran-torture/execute/math.f90 > +++ b/gcc/testsuite/gfortran.fortran-torture/execute/math.f90 > @@ -1,9 +1,14 @@ > ! Program to test mathematical intrinsics > + > +! See also 'libgomp/testsuite/libgomp.fortran/fortran-torture_execute_ma= th.f90'; thus the '!$omp' directives. > +! See also 'libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execu= te_math.f90'; thus the '!$acc' directives. Likewise here: it is not completely obvious that this file is 'include'd by the other testcases. Maybe add a line "! This file is also included in:" and remove the "See also" or some creative variant of it. Minor remark: The OpenMP part is OK, but strict reading of the spec requires an "omp declare target' if a subroutine is in a different compilation unit. And according the glossary, that's the case here. In practice, it also works without as it is in the same translation unit. (compilation unit =3D for C/C++: translation unit, for Fortran: subprogram). I think the HPE/Cray compiler will complain, but maybe only when used with modules and not with subroutine subprograms. (As many compilers write a .mod file for modules, a late change of attributes can be more problematic.) Otherwise LGTM. Tobias PS: I assume that you have check it with both with an in-build-tree and an in-install-tree testsuite run. > + > subroutine dotest (n, val4, val8, known) > implicit none > real(kind=3D4) val4, known > real(kind=3D8) val8 > integer n > + !$acc routine seq > > if (abs (val4 - known) .gt. 0.001) STOP 1 > if (abs (real (val8, kind=3D4) - known) .gt. 0.001) STOP 2 > @@ -14,17 +19,20 @@ subroutine dotestc (n, val4, val8, known) > complex(kind=3D4) val4, known > complex(kind=3D8) val8 > integer n > + !$acc routine seq > + > if (abs (val4 - known) .gt. 0.001) STOP 3 > if (abs (cmplx (val8, kind=3D4) - known) .gt. 0.001) STOP 4 > end subroutine > > -program testmath > +subroutine testmath > implicit none > real(kind=3D4) r, two4, half4 > real(kind=3D8) q, two8, half8 > complex(kind=3D4) cr > complex(kind=3D8) cq > external dotest, dotestc > + !$acc routine seq > > two4 =3D 2.0 > two8 =3D 2.0_8 > @@ -96,5 +104,16 @@ program testmath > cq =3D log ((-1.0_8, -1.0_8)) > call dotestc (21, cr, cq, (0.3466, -2.3562)) > > -end program > +end subroutine > > +program main > + implicit none > + external testmath > + > + !$acc serial > + !$omp target > + call testmath > + !$acc end serial > + !$omp end target > + > +end program > diff --git a/libgomp/testsuite/libgomp.fortran/fortran-torture_execute_ma= th.f90 b/libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90 > new file mode 100644 > index 00000000000..3348a0bb3ad > --- /dev/null > +++ b/libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90 > @@ -0,0 +1,4 @@ > +! { dg-do run } > +! { dg-additional-options -foffload-options=3D-lm } > + > +include '../../../gcc/testsuite/gfortran.fortran-torture/execute/math.f9= 0' > diff --git a/libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execu= te_math.f90 b/libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execut= e_math.f90 > new file mode 100644 > index 00000000000..1b2ac440762 > --- /dev/null > +++ b/libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execute_math= .f90 > @@ -0,0 +1,5 @@ > +! { dg-do run } > +!TODO { dg-prune-output {using 'vector_length \(32\)', ignoring 1} } > +! { dg-additional-options -foffload-options=3D-lm } > + > +include '../../../gcc/testsuite/gfortran.fortran-torture/execute/math.f9= 0' > -- 2.34.1 ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955