1 /* PR tree-optimization/69760 */
2 /* { dg-do run { target { { *-*-linux* *-*-gnu* } && mmap } } } */
3 /* { dg-options "-O2" } */
8 __attribute__((noinline
, noclone
)) void
9 test_func (double *a
, int L
, int m
, int n
, int N
)
12 for (i
= 0; i
< N
; i
++)
29 long pgsz
= sysconf(_SC_PAGESIZE
);
30 if (pgsz
< sizeof (double) || pgsz
> L
* sizeof (double))
32 p
= mmap ((void *) 0, L
* n
* sizeof (double), PROT_NONE
,
33 MAP_PRIVATE
| MAP_ANONYMOUS
, -1, 0);
36 if (mprotect (p
, pgsz
, PROT_READ
| PROT_WRITE
))
38 l
= (L
* sizeof (double)) / pgsz
* pgsz
;
39 if (mprotect (p
+ l
, pgsz
, PROT_READ
| PROT_WRITE
))
41 l
= (2 * L
* sizeof (double)) / pgsz
* pgsz
;
42 if (mprotect (p
+ l
, pgsz
, PROT_READ
| PROT_WRITE
))
44 l
= (3 * L
* sizeof (double)) / pgsz
* pgsz
;
45 if (mprotect (p
+ l
, pgsz
, PROT_READ
| PROT_WRITE
))
47 for (m
= 0; m
< N
; m
+= n
)
48 test_func ((double *) p
, L
, m
, n
, N
);