(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512vl-pr79299-1.c
       1  /* PR target/79299 */
       2  /* { dg-do assemble { target avx512vl } } */
       3  /* { dg-require-effective-target masm_intel } */
       4  /* { dg-options "-Ofast -mavx512vl -masm=intel" } */
       5  
       6  #define N 1024
       7  
       8  unsigned long long a[N];
       9  unsigned int b[N], c[N], d[N], e[N], f[N];
      10  unsigned long long g[N], h[N], j[N], k[N];
      11  float l[N], m[N], n[N], o[N];
      12  double p[N], q[N], r[N], s[N];
      13  
      14  void
      15  f1 (void)
      16  {
      17    int i;
      18    for (i = 0; i < N; i++)
      19      d[i] = c[a[i]];
      20    for (i = 0; i < N; i++)
      21      e[i] = f[i] ? f[i] : c[a[i]];
      22  }
      23  
      24  void
      25  f2 (void)
      26  {
      27    int i;
      28    for (i = 0; i < N; i++)
      29      d[i] = c[b[i]];
      30    for (i = 0; i < N; i++)
      31      e[i] = f[i] ? f[i] : c[b[i]];
      32  }
      33  
      34  void
      35  f3 (void)
      36  {
      37    int i;
      38    for (i = 0; i < N; i++)
      39      h[i] = g[a[i]];
      40    for (i = 0; i < N; i++)
      41      j[i] = k[i] != 0.0 ? k[i] : g[a[i]];
      42  }
      43  
      44  void
      45  f4 (void)
      46  {
      47    int i;
      48    for (i = 0; i < N; i++)
      49      h[i] = g[b[i]];
      50    for (i = 0; i < N; i++)
      51      j[i] = k[i] != 0.0 ? k[i] : g[b[i]];
      52  }
      53  
      54  void
      55  f5 (void)
      56  {
      57    int i;
      58    for (i = 0; i < N; i++)
      59      m[i] = l[a[i]];
      60    for (i = 0; i < N; i++)
      61      n[i] = o[i] ? o[i] : l[a[i]];
      62  }
      63  
      64  void
      65  f6 (void)
      66  {
      67    int i;
      68    for (i = 0; i < N; i++)
      69      m[i] = c[b[i]];
      70    for (i = 0; i < N; i++)
      71      n[i] = o[i] ? o[i] : c[b[i]];
      72  }
      73  
      74  void
      75  f7 (void)
      76  {
      77    int i;
      78    for (i = 0; i < N; i++)
      79      q[i] = p[a[i]];
      80    for (i = 0; i < N; i++)
      81      r[i] = s[i] != 0.0 ? s[i] : p[a[i]];
      82  }
      83  
      84  void
      85  f8 (void)
      86  {
      87    int i;
      88    for (i = 0; i < N; i++)
      89      q[i] = p[b[i]];
      90    for (i = 0; i < N; i++)
      91      r[i] = s[i] != 0.0 ? s[i] : p[b[i]];
      92  }