Intel® Fortran Compiler 16.0 User and Reference Guide
Intrinsic Subroutine (Generic): Prefetches data from the specified address on one memory cache line. Intrinsic subroutines cannot be passed as actual arguments.
CALL MM_PREFETCH (address[,hint] [,fault] [,exclusive])
address |
(Input) Is the name of a scalar or array; it can be of any type or rank. It specifies the address of the data on the cache line to prefetch. |
|||||||||||||||
hint |
(Input; optional) Is an optional default integer constant with one of the following values:
The preceding constants are defined in file fordef.for on Windows* systems and file fordef.f on Linux* and OS X* systems. If hint is omitted, 0 is assumed. |
|||||||||||||||
fault |
(Input; optional) Is an optional default logical constant. If .TRUE. is specified, page faults are allowed to occur, if necessary; if .FALSE. is specified, page faults are not allowed to occur. If fault is omitted, .FALSE. is assumed. This argument is currently ignored. |
|||||||||||||||
exclusive |
(Input; optional) Is an optional default logical constant. If.TRUE. is specified, you get exclusive ownership of the cache line because you intend to assign to it; if .FALSE. is specified, there is no exclusive ownership. If exclusive is omitted, .FALSE.is assumed. This argument is currently ignored. |
subroutine spread_lf (a, b) PARAMETER (n = 1025) real*8 a(n,n), b(n,n), c(n) do j = 1,n do i = 1,100 a(i, j) = b(i-1, j) + b(i+1, j) call mm_prefetch (a(i+20, j), 1) call mm_prefetch (b(i+21, j), 1) enddo enddo print *, a(2, 567) stop end