(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr80969-3.c
       1  /* { dg-do run { target { { ! x32 } && avx512f_runtime } } } */
       2  /* { dg-do compile { target { { ! x32 } && { ! avx512f_runtime } } } } */
       3  /* { dg-options "-Ofast -mabi=ms -mavx512f" } */
       4  /* { dg-require-effective-target avx512f } */
       5  /* { dg-require-effective-target alloca } */
       6  
       7  /* Test with alloca (and DRAP).  */
       8  
       9  int a[56];
      10  volatile int b = -12345;
      11  volatile const int d = 42;
      12  
      13  void foo (int *x, int y, int z)
      14  {
      15  }
      16  
      17  void (*volatile const foo_noinfo)(int *, int, int) = foo;
      18  
      19  int main (int argc, char *argv[]) {
      20    int c;
      21    int *e = __builtin_alloca (d);
      22    foo_noinfo (e, d, 0);
      23    for (; b; b++) {
      24      c = b;
      25      if (b & 1)
      26        c = 2;
      27      foo_noinfo (e, d, c);
      28      a[-(b % 56)] = c;
      29    }
      30    return 0;
      31  }