Replace the explicit isAtom() || isSLM() test with the more general (and more specific) slowTwoMemOps() check to avoid the use of the PUSHrmm push from memory case.
This is actually very tricky to test in anything but quite complex code, but the atomic-idempotent.ll tests seem to be the most straightforward to use. If people are happy with me using these tests I can add the extra target checks as a pre-commit.
Why did SLM/GLM/KNL lose sse2, but atom got to keep it?