http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47698
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-11 17:48:43 UTC --- (In reply to comment #4) > noce_operand_ok doesn't disregard volatile MEMs: > > /* We special-case memories, so handle any of them with > no address side effects. */ > if (MEM_P (op)) > return ! side_effects_p (XEXP (op, 0)); > > But I don't see where we would handle volatile MEMs in any sensible > way. We happily fiddle with such operands resulting in the problem. cmov pattern should disallow operand with volatile MEM.