https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81763
--- Comment #34 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #33) > At least with a smarter splitter we don't really need to avoid no overlap at > all for the r <- (r, r) bmi case, we can choose which of the two 32-bit > andn's we do first depending on the overlap, all we need to guarantee is > that the splitter is not impossible and ideally doesn't need any > instructions but the two. This would work nicely. I have seen a couple of places with the attached source (using only -mbmi -m32) where RA satisfied & or 0 constraint only with spills and would benefit from relaxed constraints. BTW: AFAICS, "andn" is the only double-word three-operand instruction that is split after reload. So, andn r <- (r,r) post-reload splitter is a precedent in x86 world.