| /* PR tree-optimization/102207 */ | |
| /* { dg-do run { target int128 } } */ | |
| /* { dg-options "-O2" } */ | |
| typedef unsigned __int128 u128; | |
| u128 | |
| foo (unsigned short a) | |
| { | |
| u128 g; | |
| __builtin_sub_overflow ((unsigned long long) -a, 1, &g); | |
| return g; | |
| } | |
| int | |
| main () | |
| { | |
| if (__SIZEOF_LONG_LONG__ * __CHAR_BIT__ != 64 | |
| || __SIZEOF_SHORT__ * __CHAR_BIT__ != 16) | |
| return 0; | |
| if (foo (1) != 0xfffffffffffffffeULL) | |
| __builtin_abort (); | |
| return 0; | |
| } |