OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [power1.f90] - Blame information for rev 708

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
! Test fix for PR fortran/38823.
3
program power
4
 
5
   implicit none
6
 
7
   integer, parameter :: &
8
   &  s = kind(1.e0), &
9
   &  d = kind(1.d0), &
10
   &  e = max(selected_real_kind(precision(1.d0)+1), d)
11
 
12
  real(s),    parameter :: ris = 2.e0_s**2
13
  real(d),    parameter :: rid = 2.e0_d**2
14
  real(e),    parameter :: rie = 2.e0_e**2
15
  complex(s), parameter :: cis = (2.e0_s,1.e0_s)**2
16
  complex(d), parameter :: cid = (2.e0_d,1.e0_d)**2
17
  complex(e), parameter :: cie = (2.e0_e,1.e0_e)**2
18
 
19
  real(s),    parameter :: rrs = 2.e0_s**2.e0
20
  real(d),    parameter :: rrd = 2.e0_d**2.e0
21
  real(e),    parameter :: rre = 2.e0_e**2.e0
22
  complex(s), parameter :: crs = (2.e0_s,1.e0_s)**2.e0
23
  complex(d), parameter :: crd = (2.e0_d,1.e0_d)**2.e0
24
  complex(e), parameter :: cre = (2.e0_e,1.e0_e)**2.e0
25
 
26
  real(s),    parameter :: rds = 2.e0_s**2.e0_d
27
  real(d),    parameter :: rdd = 2.e0_d**2.e0_d
28
  real(e),    parameter :: rde = 2.e0_e**2.e0_d
29
  complex(s), parameter :: cds = (2.e0_s,1.e0_s)**2.e0_d
30
  complex(d), parameter :: cdd = (2.e0_d,1.e0_d)**2.e0_d
31
  complex(e), parameter :: cde = (2.e0_e,1.e0_e)**2.e0_d
32
 
33
  real(s), parameter :: eps_s = 1.e-5_s
34
  real(d), parameter :: eps_d = 1.e-10_d
35
  real(e), parameter :: eps_e = 1.e-10_e
36
 
37
  if (abs(ris - 4) > eps_s) call abort
38
  if (abs(rid - 4) > eps_d) call abort
39
  if (abs(rie - 4) > eps_e) call abort
40
  if (abs(real(cis, s) - 3) > eps_s .or. abs(aimag(cis) - 4) > eps_s) call abort
41
  if (abs(real(cid, d) - 3) > eps_d .or. abs(aimag(cid) - 4) > eps_d) call abort
42
  if (abs(real(cie, e) - 3) > eps_e .or. abs(aimag(cie) - 4) > eps_e) call abort
43
 
44
  if (abs(rrs - 4) > eps_s) call abort
45
  if (abs(rrd - 4) > eps_d) call abort
46
  if (abs(rre - 4) > eps_e) call abort
47
  if (abs(real(crs, s) - 3) > eps_s .or. abs(aimag(crs) - 4) > eps_s) call abort
48
  if (abs(real(crd, d) - 3) > eps_d .or. abs(aimag(crd) - 4) > eps_d) call abort
49
  if (abs(real(cre, e) - 3) > eps_e .or. abs(aimag(cre) - 4) > eps_e) call abort
50
 
51
  if (abs(rds - 4) > eps_s) call abort
52
  if (abs(rdd - 4) > eps_d) call abort
53
  if (abs(rde - 4) > eps_e) call abort
54
  if (abs(real(cds, s) - 3) > eps_s .or. abs(aimag(cds) - 4) > eps_s) call abort
55
  if (abs(real(cdd, d) - 3) > eps_d .or. abs(aimag(cdd) - 4) > eps_d) call abort
56
  if (abs(real(cde, e) - 3) > eps_e .or. abs(aimag(cde) - 4) > eps_e) call abort
57
 
58
end program power

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.