| ! { dg-do compile } |
| ! { dg-options "-O3 -fgraphite-identity --param max-completely-peeled-insns=8" } |
| |
| MODULE hfx_contract_block |
| INTEGER, PARAMETER :: dp=8 |
| CONTAINS |
| SUBROUTINE contract_block(mb_max,mc_max,kbc,ks_bc) |
| REAL(KIND=dp) :: kbc(mb_max*mc_max), ks_bc |
| CALL block_1_2_1_2(kbc,ks_bc) |
| CALL block_1_2_1_3(kbc,ks_bc) |
| CALL block_1_2_1_3(kbc,ks_bc) |
| END SUBROUTINE contract_block |
| SUBROUTINE block_1_2_1_2(kbc,ks_bc) |
| REAL(KIND=dp) :: kbc(2*1), ks_bc |
| DO mc = 1,2 |
| DO mb = 1,2 |
| kbc((mc-1)*2+mb) = ks_bc |
| END DO |
| END DO |
| END SUBROUTINE block_1_2_1_2 |
| SUBROUTINE block_1_2_1_3(kbc,ks_bc) |
| REAL(KIND=dp) :: kbc(2*1), ks_bc |
| DO md = 1,3 |
| DO mc = 1,1 |
| DO mb = 1,2 |
| kbc((mc-1)*2+mb) = kbc((mc-1)*2+mb) - ks_bc |
| END DO |
| END DO |
| END DO |
| END SUBROUTINE block_1_2_1_3 |
| END MODULE hfx_contract_block |