1  /* { dg-do compile } */
       2  /* { dg-require-effective-target int128 } */
       3  /* { dg-options "-march=skylake-avx512 -Og" } */
       4  
       5  typedef unsigned __int128 u128;
       6  typedef unsigned __int128 v64u128 __attribute__ ((vector_size (64)));
       7  
       8  v64u128
       9  foo (u128 u128_3, v64u128 v64u128_3, v64u128 v64u128_2, v64u128 v64u128_1,
      10       v64u128 v64u128_0)
      11  {
      12    v64u128_0 <<= 1;
      13    v64u128_2 >>= 0 != v64u128_2;
      14    v64u128_3[v64u128_3[0]] &= 1;
      15    v64u128_3 = v64u128_3 & 1;
      16    v64u128_2 = v64u128_2 >> 1 | v64u128_2 << v64u128_1[0];
      17    v64u128_0[0] >>= 127;
      18    return u128_3 + v64u128_0 + v64u128_2 + v64u128_3;
      19  }