https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103632
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|rtl-optimization |middle-end --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So if I add: asm("":"+w"(v128u32_2)); Right after the definition of v128u32_2, it works. If I place it after: /* 0 */ foo0_u16_0 ^= foo0_u64_0 % u128_0; It fails. The above uses a libcall to do the mod, so there could be some scheduling or something like that.