https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106471
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The xor is due to X86_TUNE_AVOID_FALSE_DEP_FOR_BMI setting: /* X86_TUNE_AVOID_FALSE_DEP_FOR_BMI: Avoid false dependency for bit-manipulation instructions. */ DEF_TUNE (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, "avoid_false_dep_for_bmi", m_SANDYBRIDGE | m_CORE_AVX2 | m_TREMONT | m_ALDERLAKE | m_LUJIAZUI | m_GENERIC) See PR 62011 for more details on that one.