(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
pr49038.c
       1  /* { dg-require-effective-target mmap } */
       2  
       3  #include <sys/mman.h>
       4  #include <stdio.h>
       5  #include "tree-vect.h"
       6  
       7  #define COUNT 320
       8  #define MMAP_SIZE 0x10000
       9  #define ADDRESS 0x1122000000
      10  #define TYPE unsigned short
      11  
      12  #ifndef MAP_ANONYMOUS
      13  #define MAP_ANONYMOUS MAP_ANON
      14  #endif
      15  
      16  void __attribute__((noinline))
      17  foo (TYPE *__restrict a, TYPE *__restrict b)
      18  {
      19    int n;
      20  
      21    for (n = 0; n < COUNT; n++)
      22      a[n] = b[n * 2];
      23  }
      24  
      25  int
      26  main (void)
      27  {
      28    void *x;
      29    size_t b_offset;
      30  
      31    check_vect ();
      32  
      33    x = mmap ((void *) ADDRESS, MMAP_SIZE, PROT_READ | PROT_WRITE,
      34  	    MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
      35    if (x == MAP_FAILED)
      36      {
      37        perror ("mmap");
      38        return 1;
      39      }
      40  
      41    b_offset = MMAP_SIZE - (2 * COUNT - 1) * sizeof (TYPE);
      42    foo ((unsigned short *) x,
      43         (unsigned short *) ((char *) x + b_offset));
      44    return 0;
      45  }
      46