1  /* PR target/108044 */
       2  /* { dg-do compile { target int128 } } */
       3  /* { dg-options "-O2 -fcf-protection=branch" } */
       4  
       5  static inline unsigned __int128
       6  foo (unsigned long long x, unsigned long long y)
       7  {
       8    return ((unsigned __int128) x << 64) | y;
       9  }
      10  
      11  unsigned __int128
      12  bar (unsigned long long x)
      13  {
      14    return foo (x, 0xfa1e0ff3ULL);
      15  }
      16  
      17  unsigned __int128
      18  baz (unsigned long long x)
      19  {
      20    return foo (0xfa1e0ff3ULL, x);
      21  }
      22  
      23  unsigned __int128
      24  qux (unsigned long long x)
      25  {
      26    return foo (x, 0xffbafa1e0ff3abdeULL);
      27  }
      28  
      29  unsigned __int128
      30  corge (unsigned long long x)
      31  {
      32    return foo (0xffbafa1e0ff3abdeULL, x);
      33  }