1  /* PR target/104502 */
       2  /* { dg-do compile { target fstack_protector } } */
       3  /* { dg-options "-O -flive-range-shrinkage -march=barcelona -fstack-protector-all -mavx512f" } */
       4  
       5  typedef char __attribute__((__vector_size__ (8))) U;
       6  typedef int __attribute__((__vector_size__ (8))) A;
       7  typedef int __attribute__((__vector_size__ (16))) B;
       8  typedef int __attribute__((__vector_size__ (32))) C;
       9  typedef int __attribute__((__vector_size__ (64))) D;
      10  typedef __float128 __attribute__((__vector_size__ (32))) F;
      11  
      12  char s;
      13  U u;
      14  A a;
      15  int i;
      16  C c;
      17  double d;
      18  
      19  U
      20  foo (U u0, A a0, B b0, B b1, C c0, C c1, C c2, C c3, A a1, A a2, F f0)
      21  {
      22    C ca = c |= (short) (float) d;
      23    C cb = c0 + c1 + c2 + c3 + ca + (C) f0;
      24    U ua = s << (u & 4);
      25    B ba = ((union {C a; B b;}) cb).b + b0 + b1;
      26    U ub = ((union {B a; U b;}) ba).b +
      27      u0 + u + ua + (U) a + (U) a + (U) a0 + (U) a1 + (U) a2;
      28    long long u64_r = i + d;
      29    char u8_r = u64_r;
      30    return ub + u8_r;
      31  }