https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65368
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #3) > For zero_extract RTL we require that the POS and LEN arguments are in the > right ranges, while bextr allows any values, and either uses 0 for bits > outside of the original operand and for LEN uses umin (len, <bitsize>). Ah, thanks, this explains my question from Comment #4. Speculating a bit further, is BZHI just a special case of BEXTR, where start = 0 (I'm referring to [1]). It would be nice to make these insn as general as possible, so combine will have a chance here. [1] http://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets