https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84101
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- Other testcase: using u64 = unsigned long long; struct u128 {u64 a, b;}; inline u64 load8(void* ptr) { u64 out; __builtin_memcpy(&out, ptr, 8); return out; } u128 load(char* basep, u64 n) { return {load8(basep), load8(basep+n-8)}; }