https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108190
--- Comment #6 from Marc Glisse <glisse at gcc dot gnu.org> --- Indeed, this looks like a common issue (at least with the x86 backend): the memory load is combined with the comparison before we try combining the comparison with the blend, and this last combination is then rejected because it expects a register, not memory. So either we are too eager in merging loads with instructions, or we reject instructions too early when we could still fix the operands with an extra load.