1  /* PR target/99321 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mtune=btver2 -fno-tree-dce -mavx512vl -mno-avx512bw" } */
       4  
       5  typedef unsigned __attribute__((__vector_size__ (8))) A;
       6  typedef unsigned int __attribute__((__vector_size__ (8))) B;
       7  typedef unsigned char __attribute__((__vector_size__ (16))) C;
       8  typedef unsigned __attribute__((__vector_size__ (16))) D;
       9  typedef unsigned int __attribute__((__vector_size__ (16))) E;
      10  typedef unsigned __attribute__((__vector_size__ (16))) F;
      11  typedef unsigned __attribute__((__vector_size__ (32))) G;
      12  typedef int __attribute__((__vector_size__ (32))) H;
      13  typedef unsigned int __attribute__((__vector_size__ (32))) I;
      14  typedef char __attribute__((__vector_size__ (64))) J;
      15  typedef unsigned int __attribute__((__vector_size__ (64))) K;
      16  typedef unsigned long long __attribute__((__vector_size__ (64))) L;
      17  unsigned char a;
      18  unsigned b, c;
      19  H d;
      20  E e, f;
      21  D g;
      22  L h;
      23  
      24  A
      25  foo0 (A i, C j, G k, B l, K m, B n, I o)
      26  {
      27    J p, q = a != p;
      28    F r = b << f;
      29    int s = a * 15;
      30    C t = (1 << ((C) ((C) { 80 } >=j) & sizeof (0)) | (j ^ (C) { 5 }) << (j & sizeof (0))) != 0;
      31    L u = h;
      32    H v = d - 40;
      33    u ^= -(long long) n;
      34    D w = (char) s > g;
      35    o ^= c / o;
      36    J x = p + q + (J) m + (J) u + (J) u;
      37    G y = ((union { J a; G b;}) x).b + ((union { J a; G b[2];}) x).b[1] + k + v + o;
      38    C z = ((union { G a; C b;}) y).b + ((union { G a; C b;}) y).b + j + t + (C) g + (C) w + (C) e + (C) f + (C) r;
      39    A zz = ((union { C a; A b;}) z).b + i + l + n;
      40    return zz;
      41  }