http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53110
--- Comment #6 from peterz at infradead dot org 2012-04-25 13:00:47 UTC --- OK rectification, that's what it _should_ compute, I just noticed add_u128() is missing: a.hi += b.hi; Anyway, that's all besides the point, the issue is that gcc shouldn't generate those andl 0xFFFFFFFF, %r thingies, regardless if the C makes sense or not.