1  /* { dg-do compile { target int128 } } */
       2  /* { dg-options "-O -mavx512f -fno-split-wide-types --param max-combine-insns=2" } */
       3  
       4  typedef unsigned      int U __attribute__((vector_size(64)));
       5  typedef unsigned __int128 V __attribute__((vector_size(64)));
       6  
       7  V
       8  foo(V v)
       9  {
      10    v[0] = 1u << ((  ((V)(U){1, 1, v[0]})[0]) & 0xf)
      11              >> ((-~((V)(U){1, 1, v[0]})[0]) & 0xf);
      12    return v;
      13  }