(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
compile/
bcopy.c
       1  /* { dg-add-options stack_size } */
       2  /* { dg-require-stack-size "[dg-effective-target-value stack_size]*2" } */
       3  
       4  void
       5  bcopy1 (s, d, c)
       6       long long *s;
       7       long long *d;
       8       int c;
       9  {
      10    int i;
      11    c = c / 8;
      12    for (i = 0;  i < c;  i++)
      13      d[i] = s[i];
      14  }
      15  
      16  void
      17  bcopy2 (s, d, c)
      18       long *s;
      19       long *d;
      20       int c;
      21  {
      22    int i;
      23    c = c / 4;
      24    for (i = 0;  i < c;  i++)
      25      d[i] = s[i];
      26  }
      27  
      28  
      29  void
      30  bcopy3 (s, d, c)
      31       char *s;
      32       char *d;
      33       int c;
      34  {
      35    long long z0, z1;
      36    int r = d - s;
      37  
      38    int i;
      39  
      40    c /= 16;
      41  
      42    z0 = *((long long *) s);
      43    s += 8;
      44    z1 = *((long long *) s);
      45    s += 8;
      46    for (i = 0; i < c; i++)
      47      {
      48        *(long long *)(s + r) = z0;
      49        z0 = *((long long *) s);
      50        s += 8;
      51        *(long long *)(s + r) = z1;
      52        z1 = *((long long *) s);
      53        s += 8;
      54      }
      55  }
      56  
      57  #if defined(STACK_SIZE) && STACK_SIZE < 16384
      58  #define BYTES STACK_SIZE
      59  #else
      60  #define BYTES 16384
      61  #endif
      62  
      63  main ()
      64  {
      65    long long s[BYTES / 8];
      66    long long d[BYTES / 8];
      67    int i;
      68  
      69    for (i = 1; i < 67108864 / BYTES; i++)
      70      bcopy (s, d, BYTES);
      71  }