[patch, vectorizer] Fix PR tree-optimization/36119 (committed)

Ira Rosen IRAR@il.ibm.com
Mon May 5 09:30:00 GMT 2008



"Andrew Pinski" <pinskia@gmail.com> wrote on 05/05/2008 10:57:36:

> On Mon, May 5, 2008 at 12:51 AM, Ira Rosen <IRAR@il.ibm.com> wrote:
> >  Index: testsuite/gfortran.dg/vect/pr36119.f
> >  ===================================================================
> >  --- testsuite/gfortran.dg/vect/pr36119.f        (revision 0)
> >  +++ testsuite/gfortran.dg/vect/pr36119.f        (revision 0)
> >  @@ -0,0 +1,29 @@
> >  +! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
> >  +! { dg-options "-O3 -mfpmath=sse -msse2 -ffree-form" }
>
> For free form fortran tests, you could have named the testcase ending
> in .f90 which causes free form by default.

Thanks, I didn't know that.

> Also I would have enabled this test at -O3 in general and enable the
> extra options "-mfpmath=sse -msse2" for x86.
> That is:
> ! { dg-do compile  }
> ! { dg-options "-O3 -ffree-form" }
> ! { dg-options "-O3 -mfpmath=sse -msse2 -ffree-form" { target {
> i?86-*-* x86_64-*-* } } }

I checked and actually -mfpmath=sse is redundant here. So I renamed the
testcase to O3-pr36119.f90 and removed dg-options at all. So now it is
compiled for all the targets with -O3 and the appropriate SIMD extension.
Checked on x86_64 and ppc-linux. O.K. to commit (4.3.1 and 4.4)?

Thanks,
Ira

>
>
> Thanks,
> Andrew Pinski

Index: testsuite/ChangeLog
===================================================================
--- testsuite/ChangeLog (revision 134944)
+++ testsuite/ChangeLog (working copy)
@@ -1,5 +1,11 @@
 2008-05-05  Ira Rosen  <irar@il.ibm.com>

+       * gfortran.dg/vect/pr36119.f: Rename to ...
+       * gfortran.dg/vect/O3-pr36119.f90: ... this. Compile for all
targets
+       with -O3.
+
+2008-05-05  Ira Rosen  <irar@il.ibm.com>:
+
        PR tree-optimization/36119
        * gfortran.dg/vect/pr36119.f: New test.

Index: testsuite/gfortran.dg/vect/vect.exp
===================================================================
--- testsuite/gfortran.dg/vect/vect.exp (revision 134943)
+++ testsuite/gfortran.dg/vect/vect.exp (working copy)
@@ -137,6 +137,12 @@ lappend DEFAULT_VECTCFLAGS "--param" "ve
 dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-vfa-*.\[fF
\]{,90,95,03,08} ]]  \
         "" $DEFAULT_VECTCFLAGS

+# With -O3
+set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
+lappend DEFAULT_VECTCFLAGS "-O3"
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/O3-*.\[fF
\]{,90,95,03,08} ]]  \]
+        "" $DEFAULT_VECTCFLAGS
+
 # Clean up.
 set dg-do-what-default ${save-dg-do-what-default}

Index: testsuite/gfortran.dg/vect/O3-pr36119.f90
===================================================================
--- testsuite/gfortran.dg/vect/O3-pr36119.f90   (revision 0)
+++ testsuite/gfortran.dg/vect/O3-pr36119.f90   (revision 0)
@@ -0,0 +1,28 @@
+! { dg-do compile }
+!
+SUBROUTINE check_dnucint_ana (dcore)
+  IMPLICIT NONE
+  INTEGER, PARAMETER :: dp=8
+  REAL(dp), DIMENSION(10, 2), INTENT(IN),&
+       OPTIONAL                            :: dcore
+  INTEGER                                  :: i, j
+  REAL(dp)                                 :: delta, nssss, od, rn, ssssm,
&}
+       ssssp
+  REAL(dp), DIMENSION(10, 2)               :: corem, corep, ncore
+  LOGICAL                                  :: check_value
+
+  delta = 1.0E-8_dp
+  od = 0.5_dp/delta
+  ncore = od * (corep - corem)
+  nssss = od * (ssssp - ssssm)
+  IF (PRESENT(dcore)) THEN
+     DO i = 1, 2
+        DO j = 1, 10)
+           IF (.NOT.check_value(ncore(j,i), dcore(j,i), delta, 0.1_dp))
THEN}
+           END IF
+        END DO
+     END DO
+  END IF
+END SUBROUTINE check_dnucint_ana
+
+! { dg-final { cleanup-tree-dump "vect" } }
Index: testsuite/gfortran.dg/vect/pr36119.f}
===================================================================
--- testsuite/gfortran.dg/vect/pr36119.f        (revision 134943)
+++ testsuite/gfortran.dg/vect/pr36119.f        (working copy)
@@ -1,29 +0,0 @@
-! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
-! { dg-options "-O3 -mfpmath=sse -msse2 -ffree-form" }
-!
-SUBROUTINE check_dnucint_ana (dcore)
-  IMPLICIT NONE
-  INTEGER, PARAMETER :: dp=8
-  REAL(dp), DIMENSION(10, 2), INTENT(IN),&
-       OPTIONAL                            :: dcore
-  INTEGER                                  :: i, j
-  REAL(dp)                                 :: delta, nssss, od, rn, ssssm,
&}
-       ssssp
-  REAL(dp), DIMENSION(10, 2)               :: corem, corep, ncore
-  LOGICAL                                  :: check_value
-
-  delta = 1.0E-8_dp
-  od = 0.5_dp/delta
-  ncore = od * (corep - corem)
-  nssss = od * (ssssp - ssssm)
-  IF (PRESENT(dcore)) THEN
-     DO i = 1, 2
-        DO j = 1, 10)
-           IF (.NOT.check_value(ncore(j,i), dcore(j,i), delta, 0.1_dp))
THEN}
-           END IF
-        END DO
-     END DO
-  END IF
-END SUBROUTINE check_dnucint_ana
-
-! { dg-final { cleanup-tree-dump "vect" } }



More information about the Gcc-patches mailing list