/* PR tree-optimization/68835 */ /* { dg-do run { target int128 } } */ /* { dg-options "-fno-tree-forwprop -fno-tree-ccp -O1 -fno-tree-dominator-opts -fno-tree-fre" } */ __attribute__((noinline, noclone)) unsigned __int128 foo (void) { unsigned __int128 x = (unsigned __int128) 0xffffffffffffffffULL; struct { unsigned __int128 a : 65; } w; w.a = x; w.a += x; return w.a; } int main () { unsigned __int128 x = foo (); if ((unsigned long long) x != 0xfffffffffffffffeULL || (unsigned long long) (x >> 64) != 1) __builtin_abort (); return 0; }