On Mon, Feb 29, 2016 at 10:51:24AM +0000, Kyrill Tkachov wrote: > So I'm trying to create a define_insn to match something like: > [(set (match_operand:SI 0 "register_operand" "=r") > (ashift:SI > (match_operand:SI 1 "register_operand" "r") > (and:QI > (match_operand:QI 2 "register_operand" "r") > (match_operand:QI 3 "const_int_operand" "n"))))] > > > where operands[3] is 31 for SImode. The 'and' expression has to be in > QImode because our shift expanders > expand the shift amount to QImode.
Is there any reason for that? Why not SImode? Segher