URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [function_optimize_7.f90] - Rev 694
Compare with Previous | Blame | View Log
! { dg-do compile }! { dg-options "-O -fdump-tree-original -Warray-temporaries" }subroutine xx(n, m, a, b, c, d, x, z, i, s_in, s_out)implicit noneinteger, intent(in) :: n, mreal, intent(in), dimension(n,n) :: a, b, creal, intent(out), dimension(n,n) :: dreal, intent(in), dimension(n,m) :: s_inreal, intent(out), dimension(m) :: s_outinteger, intent(out) :: ireal, intent(inout) :: xreal, intent(out) :: zcharacter(60) :: linereal, external :: ext_funcinteger :: one = 1interfaceelemental function element(x)real, intent(in) :: xreal :: elemend function elementpure function mypure(x)real, intent(in) :: xinteger :: mypureend function mypureelemental impure function elem_impure(x)real, intent(in) :: xreal :: elem_impureend function elem_impureend interfaced = matmul(a,b) + matmul(a,b) ! { dg-warning "Creating array temporary" }z = sin(x) + cos(x) + sin(x) + cos(x)x = ext_func(a) + 23 + ext_func(a)z = element(x) + element(x)i = mypure(x) - mypure(x)z = elem_impure(x) - elem_impure(x)s_out = sum(s_in,one) + 3.14 / sum(s_in,one) ! { dg-warning "Creating array temporary" }end subroutine xx! { dg-final { scan-tree-dump-times "matmul_r4" 1 "original" } }! { dg-final { scan-tree-dump-times "__builtin_sinf" 1 "original" } }! { dg-final { scan-tree-dump-times "__builtin_cosf" 1 "original" } }! { dg-final { scan-tree-dump-times "ext_func" 2 "original" } }! { dg-final { scan-tree-dump-times "element" 1 "original" } }! { dg-final { scan-tree-dump-times "mypure" 1 "original" } }! { dg-final { scan-tree-dump-times "elem_impure" 2 "original" } }! { dg-final { scan-tree-dump-times "sum_r4" 1 "original" } }! { dg-final { cleanup-tree-dump "original" } }
