X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg77.f-torture%2Fexecute%2F19990325-1.f;fp=gcc%2Ftestsuite%2Fg77.f-torture%2Fexecute%2F19990325-1.f;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=802f375b33d49bafd926d4bc21d3e63c329358b4;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g77.f-torture/execute/19990325-1.f b/gcc/testsuite/g77.f-torture/execute/19990325-1.f deleted file mode 100644 index 802f375b..00000000 --- a/gcc/testsuite/g77.f-torture/execute/19990325-1.f +++ /dev/null @@ -1,313 +0,0 @@ -* test whether complex operators properly handle -* full and partial aliasing. -* (libf2c/libF77 routines used to assume no aliasing, -* then were changed to accommodate full aliasing, while -* the libg2c/libF77 versions were changed to accommodate -* both full and partial aliasing.) -* -* NOTE: this (19990325-1.f) is the double-precision version. -* See 19990325-0.f for the single-precision version. - - program doublecomplexalias - implicit none - -* Make sure non-aliased cases work. (Catch roundoff/precision -* problems, etc., here. Modify subroutine check if they occur.) - - call tryfull (1, 3, 5) - -* Now check various combinations of aliasing. - -* Full aliasing. - call tryfull (1, 1, 5) - -* Partial aliasing. - call trypart (2, 3, 5) - call trypart (2, 1, 5) - call trypart (2, 5, 3) - call trypart (2, 5, 1) - - end - - subroutine tryfull (xout, xin1, xin2) - implicit none - integer xout, xin1, xin2 - -* out, in1, and in2 are the desired indexes into the REAL array (array). - - double complex expect - integer pwr - integer out, in1, in2 - - double precision array(6) - double complex carray(3) - equivalence (carray(1), array(1)) - -* Make sure the indexes can be accommodated by the equivalences above. - - if (mod (xout, 2) .ne. 1) call abort - if (mod (xin1, 2) .ne. 1) call abort - if (mod (xin2, 2) .ne. 1) call abort - -* Convert the indexes into ones suitable for the COMPLEX array (carray). - - out = (xout + 1) / 2 - in1 = (xin1 + 1) / 2 - in2 = (xin2 + 1) / 2 - -* Check some open-coded stuff, just in case. - - call prepare1 (carray(in1)) - expect = + carray(in1) - carray(out) = + carray(in1) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = - carray(in1) - carray(out) = - carray(in1) - call check (expect, carray(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) + carray(in2) - carray(out) = carray(in1) + carray(in2) - call check (expect, carray(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) - carray(in2) - carray(out) = carray(in1) - carray(in2) - call check (expect, carray(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) * carray(in2) - carray(out) = carray(in1) * carray(in2) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** 2 - carray(out) = carray(in1) ** 2 - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** 3 - carray(out) = carray(in1) ** 3 - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = abs (carray(in1)) - array(out*2-1) = abs (carray(in1)) - array(out*2) = 0 - call check (expect, carray(out)) - -* Now check the stuff implemented in libF77. - - call prepare1 (carray(in1)) - expect = cos (carray(in1)) - carray(out) = cos (carray(in1)) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = exp (carray(in1)) - carray(out) = exp (carray(in1)) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = log (carray(in1)) - carray(out) = log (carray(in1)) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = sin (carray(in1)) - carray(out) = sin (carray(in1)) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = sqrt (carray(in1)) - carray(out) = sqrt (carray(in1)) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = conjg (carray(in1)) - carray(out) = conjg (carray(in1)) - call check (expect, carray(out)) - - call prepare1i (carray(in1), pwr) - expect = carray(in1) ** pwr - carray(out) = carray(in1) ** pwr - call check (expect, carray(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) / carray(in2) - carray(out) = carray(in1) / carray(in2) - call check (expect, carray(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) ** carray(in2) - carray(out) = carray(in1) ** carray(in2) - call check (expect, carray(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** .2 - carray(out) = carray(in1) ** .2 - call check (expect, carray(out)) - - end - - subroutine trypart (xout, xin1, xin2) - implicit none - integer xout, xin1, xin2 - -* out, in1, and in2 are the desired indexes into the REAL array (array). - - double complex expect - integer pwr - integer out, in1, in2 - - double precision array(6) - double complex carray(3), carrayp(2) - equivalence (carray(1), array(1)) - equivalence (carrayp(1), array(2)) - -* Make sure the indexes can be accommodated by the equivalences above. - - if (mod (xout, 2) .ne. 0) call abort - if (mod (xin1, 2) .ne. 1) call abort - if (mod (xin2, 2) .ne. 1) call abort - -* Convert the indexes into ones suitable for the COMPLEX array (carray). - - out = xout / 2 - in1 = (xin1 + 1) / 2 - in2 = (xin2 + 1) / 2 - -* Check some open-coded stuff, just in case. - - call prepare1 (carray(in1)) - expect = + carray(in1) - carrayp(out) = + carray(in1) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = - carray(in1) - carrayp(out) = - carray(in1) - call check (expect, carrayp(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) + carray(in2) - carrayp(out) = carray(in1) + carray(in2) - call check (expect, carrayp(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) - carray(in2) - carrayp(out) = carray(in1) - carray(in2) - call check (expect, carrayp(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) * carray(in2) - carrayp(out) = carray(in1) * carray(in2) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** 2 - carrayp(out) = carray(in1) ** 2 - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** 3 - carrayp(out) = carray(in1) ** 3 - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = abs (carray(in1)) - array(out*2) = abs (carray(in1)) - array(out*2+1) = 0 - call check (expect, carrayp(out)) - -* Now check the stuff implemented in libF77. - - call prepare1 (carray(in1)) - expect = cos (carray(in1)) - carrayp(out) = cos (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = exp (carray(in1)) - carrayp(out) = exp (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = log (carray(in1)) - carrayp(out) = log (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = sin (carray(in1)) - carrayp(out) = sin (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = sqrt (carray(in1)) - carrayp(out) = sqrt (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = conjg (carray(in1)) - carrayp(out) = conjg (carray(in1)) - call check (expect, carrayp(out)) - - call prepare1i (carray(in1), pwr) - expect = carray(in1) ** pwr - carrayp(out) = carray(in1) ** pwr - call check (expect, carrayp(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) / carray(in2) - carrayp(out) = carray(in1) / carray(in2) - call check (expect, carrayp(out)) - - call prepare2 (carray(in1), carray(in2)) - expect = carray(in1) ** carray(in2) - carrayp(out) = carray(in1) ** carray(in2) - call check (expect, carrayp(out)) - - call prepare1 (carray(in1)) - expect = carray(in1) ** .2 - carrayp(out) = carray(in1) ** .2 - call check (expect, carrayp(out)) - - end - - subroutine prepare1 (in) - implicit none - double complex in - - in = (3.2d0, 4.2d0) - - end - - subroutine prepare1i (in, i) - implicit none - double complex in - integer i - - in = (2.3d0, 2.5d0) - i = 4 - - end - - subroutine prepare2 (in1, in2) - implicit none - double complex in1, in2 - - in1 = (1.3d0, 2.4d0) - in2 = (3.5d0, 7.1d0) - - end - - subroutine check (expect, got) - implicit none - double complex expect, got - - if (dimag(expect) .ne. dimag(got)) call abort - if (dble(expect) .ne. dble(got)) call abort - - end