1  /* PR target/89434 */
       2  
       3  #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 && __CHAR_BIT__ == 8
       4  long g = 0;
       5  
       6  static inline unsigned long long
       7  foo (unsigned long long u)
       8  {
       9    unsigned x;
      10    __builtin_mul_overflow (-1, g, &x);
      11    u |= (unsigned) u < (unsigned short) x;
      12    return x - u;
      13  }
      14  
      15  int
      16  main ()
      17  {
      18    unsigned long long x = foo (0x222222222ULL);
      19    if (x != 0xfffffffddddddddeULL)
      20      __builtin_abort ();
      21    return 0;
      22  }
      23  #else
      24  int
      25  main ()
      26  {
      27    return 0;
      28  }
      29  #endif