1  /* PR rtl-optimization/78547 */
       2  /* { dg-do compile { target int128 } } */
       3  /* { dg-options "-Os -g -freorder-blocks-algorithm=simple -Wno-psabi" } */
       4  /* { dg-additional-options "-mstringop-strategy=libcall" { target i?86-*-* x86_64-*-* } } */
       5  
       6  typedef unsigned __int128 u128;
       7  typedef unsigned __int128 V __attribute__ ((vector_size (64)));
       8  
       9  V
      10  foo (u128 a, u128 b, u128 c, V d)
      11  {
      12    V e = (V) {a};
      13    V f = e & 1;
      14    e = 0 != e;
      15    c = c;
      16    f = f << ((V) {c} & 7);
      17    return f + e;
      18  }