2011/4/14 Georg-Johann Lay <a...@gjlay.de>: > The "rotl<mode>3" expanders (mode \in {HI,SI,DI}) violates synopsis by > using 4 operands instead of 3. This runs in ICE in top of > optabs.c:maybe_gen_insn. > > The right way to do this is to use match_dup, not match_operand. So > the fix is obvious. > > Regenerated avr-gcc and run against avr testsuite: > > gcc.target/avr/torture/pr41885.c generates these patterns > > Johann > > 2011-04-14 Georg-Johann Lay <a...@gjlay.de> > > * config/avr/avr.md ("rotlhi3", "rotlsi3", "rotldi3"): Fix > expanders operand 3 from match_operand to match_dup.
May be better to use (clobber (match_scratch ...)) here and in `*rotw<mode>' and `*rotb<mode>'. Denis.