https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114523
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The problem is the verifier: Mär 26 23:57:12 H systemd[1]: 17: (ac) w0 ^= w3 ; R0_w=scalar() R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=1,var_off=(0x0; 0x1)) Mär 26 23:57:12 H systemd[1]: 18: (57) r0 &= 255 ; R0_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff)) it lost track of what the input of r0 was. It had the right result after the xor but then the bit_and didn't take into account the what was before it. It just used 0xff.