3 /* { dg-options "-O2" } */
8 #ifdef __SIZEOF_INT128__
9 __int128 m
= -(((__int128
) 1) << (__CHAR_BIT__
* __SIZEOF_INT128__
/ 2));
10 volatile __int128 mv
= m
;
13 long long m
= -(1LL << (__CHAR_BIT__
* __SIZEOF_LONG_LONG__
/ 2));
14 volatile long long mv
= m
;
17 if (!__builtin_mul_overflow (mv
, mv
, &r
))
19 if (!__builtin_mul_overflow_p (mv
, mv
, r
))
21 if (!__builtin_mul_overflow (m
, m
, &r
))
23 if (!__builtin_mul_overflow_p (m
, m
, r
))