https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917
--- Comment #8 from ktkachov at gcc dot gnu.org ---
The 007t.lower one looks like:
try
{
MEM[(char * {ref-all})&a] = MEM[(char * {ref-all})ap];
MEM[(char * {ref-all})&b] = MEM[(char * {ref-all})bp];
D.5587 = a.u[0];
D.5588 = b.u[0];
D.5589 = D.5587 ^ D.5588;
a.u[0] = D.5589;
D.5590 = a.u[1];
D.5591 = b.u[1];
D.5592 = D.5590 ^ D.5591;
a.u[1] = D.5592;
MEM[(char * {ref-all})outp] = MEM[(char * {ref-all})&a];
}
finally
{
a = {CLOBBER};
b = {CLOBBER};
}
return;