(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr84614.c
       1  /* PR target/84614 */
       2  /* { dg-do run { target int128 } } */
       3  /* { dg-options "-Og -fno-split-wide-types -fno-tree-coalesce-vars -g --param=max-combine-insns=3 -fcompare-debug" } */
       4  
       5  unsigned __int128 a;
       6  
       7  unsigned __int128
       8  b (unsigned short c, unsigned int d)
       9  {
      10    unsigned long long e;
      11    __builtin_sub_overflow (0, d, &e);
      12    e >>= c;
      13    c ^= 65535;
      14    d ^= 824;
      15    return c + a + d + e;
      16  }
      17  
      18  int
      19  main ()
      20  {
      21    unsigned __int128 x = b (0, 9);
      22    if (__SIZEOF_INT__ * __CHAR_BIT__ == 32
      23        && __SIZEOF_LONG_LONG__ * __CHAR_BIT__ == 64
      24        && __SIZEOF_INT128__ * __CHAR_BIT__ == 128
      25        && x != (((unsigned __int128) 1 << 64) | 0x10327))
      26      __builtin_abort ();
      27    return 0;
      28  }