https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #285 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #284) > (In reply to Kazumoto Kojima from comment #283) ... > > It turned out that the c#276 version of block_lump_real_i4 works correctly > > in only the limited cases. > > Have you tried writing the pattern as > > (define_insn "block_lump_real_i4" > [(set (mem:BLK (match_operand:SI 2 "" "r,r")) > (mem:BLK (match_operand:SI 3 "" "r,r"))) > (use (match_operand:SI 0 "arith_reg_operand" "r,r")) > (use (match_operand 1 "" "Z,Ccl")) > ... > > i.e. without the parallel in there? Sorry, maybe it's a stupid idea but ... The last time I tried it against slightly different patterns, there was no difference. I'll try it again.