Subject: F77 compiler on R10000 SGI Indigo2: buggy?

From: "Robert Fraczkiewicz" <[email-masked]>
Date: Thu, 21 Nov 1996 14:28:44 -0600

Dear Netters,

Below is a short FORTRAN code that I wrote solely for the purpose of
testing the system subroutine DTIME in SGI IRIX 6.2. This subroutine
returns the elapsed CPU time since the last call to DTIME. I have
compiled it on SGI Indigo2 with R10000 processor using MIPSpro F77
compiler. I have used five different option sets listed below:

1) f77 silly.f -o silly        (this produces 32-bit mips2 code by default)
2) f77 -O2 silly.f -o silly
3) f77 -64 silly.f -o silly    (this produces 64-bit mips4 code)
4) f77 -64 -O2 silly.f -o silly
5) f77 -64 -O3 silly.f -o silly

The unusual results I have obtained are shown in table below. Apart
>from the fact that the 64-bit executables produce slightly different
result for x than their 32-bit counterparts, the CPU times in column
4) are larger by a factor of TEN in comparison to other columns!
Normally, I would expect them to be in between 3) and 5). This abnormal
result is reproducible for every SGI R10000 machine that we have here.
It seems that options -64 and -O2 don't get along very well. Is there
something I don't understand about MIPSpro F77 optimization options? Am I
missing something? Or is there a bug in the compiler?
Please, recompile this code on your R10000 (if you have it :-) to confirm
or deny this observation.

      program silly
      implicit double precision (a-h,o-z)
      real tarray(2)
      x=0.d0
      jmax=100
      call dtime(tarray)
      do imax=8000,10000,100
       do i=1,imax
        do j=1,jmax
         x=x+sqrt(float(i))*sin(float(j))
         y=acos(x/(i*abs(x)))
        enddo
       enddo
       call dtime(tarray)
       print *,imax,tarray(1)+tarray(2)
      enddo
      print *,x,y
      stop
      end

Results:
------------------------------------------------------------------------
       | CPU times (s) reported by DTIME for different compiler options|
  imax -----------------------------------------------------------------
       |     1)    |      2)    |      3)    |      4)    |      5)    |
------------------------------------------------------------------------
  8000 | 0.8353710 |  0.6551640 |  0.6200770 |   6.131035 |  0.1884840 |
  8100 | 0.8722960 |  0.6899580 |  0.6547980 |   6.208158 |  0.1924730 |
  8200 | 0.8814020 |  0.6967919 |  0.6354470 |   6.280854 |  0.1928640 |
  8300 | 0.8918310 |  0.6798510 |  0.6682850 |   6.354552 |  0.1953330 |
  8400 | 0.9021270 |  0.7131230 |  0.6759790 |   6.454478 |  0.1976650 |
  8500 | 0.9128000 |  0.7212590 |  0.6588350 |   6.503715 |  0.2249840 |
  8600 | 0.9232100 |  0.7044880 |  0.6914790 |   6.604474 |  0.2023520 |
  8700 | 0.9336550 |  0.7377620 |  0.6991270 |   6.682483 |  0.2047420 |
  8800 | 0.9442470 |  0.7459780 |  0.7070640 |   6.732563 |  0.2070200 |
  8900 | 0.9545040 |  0.7541710 |  0.6897570 |   6.828230 |  0.2343980 |
  9000 | 0.9649110 |  0.7372350 |  0.7226390 |   6.902500 |  0.2117620 |
  9100 | 0.9503450 |  0.7706130 |  0.7303350 |   6.977732 |  0.2140380 |
  9200 | 0.9860920 |  0.7787640 |  0.7130180 |   7.052145 |  0.2164480 |
  9300 | 0.9962510 |  0.7868320 |  0.7457520 |   7.127767 |  0.2188510 |
  9400 |  1.006923 |  0.7699320 |  0.7534280 |   7.226908 |  0.2460940 |
  9500 |  1.017477 |  0.8030970 |  0.7614270 |   7.281057 |  0.2234870 |
  9600 |  1.052756 |  0.8112460 |  0.7440030 |   7.351462 |  0.2258430 |
  9700 |  1.038267 |  0.8196840 |  0.7766720 |   7.452884 |  0.2281600 |
  9800 |  1.048346 |  0.8278640 |  0.7845440 |   7.500894 |  0.2555520 |
  9900 |  1.059044 |  0.8359420 |  0.7923810 |   7.600510 |  0.2328600 |
 10000 |  1.069380 |  0.8191160 |  0.7999970 |   7.650619 |  0.2352500 |
------------------------------------------------------------------------
   x   |   -1522838.034014487   |          -1522834.807409876          |
------------------------------------------------------------------------
   y   |    1.570896326795063   |           1.570896326795063          |
------------------------------------------------------------------------

Best regards,
Robert Fraczkiewicz
University of Texas Meedical Branch
Galveston, TX 77555