http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574
--- Comment #5 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- Thanks for tracking this down! (In reply to Jakub Jelinek from comment #2) > I'd say the bug is in s390_chunkify_start: > if (GET_CODE (pat) == PARALLEL && XVECLEN (pat, 0) > 2) > pat = XVECEXP (pat, 0, 0); > Dunno what exactly the > 2 condition has been added for, JUMP_INSNs with The more complex loop jumps might have more than 2 I think. > PARALLEL with XVECLEN (pat, 0) == 2 are: > 1) casesi_jump > 2) *cmp_and_br_signed_<mode>, *cmp_and_br_unsigned_<mode>, > *icmp_and_br_signed_<mode>, *icmp_and_br_unsigned_<mode> > 3) *ccraw_to_int > I can understand why you wouldn't want to handle 1) in there, and supposedly > 3) should be split before machine reorg or worst case at the start of it. > But 2), this case, it looks wrong not to do anything here. > > Note that similar condition is in s390_split_branches, no idea what do you > want to do there. But perhaps TARGET_Z10 implies TARGET_ZARCH and thus > s390_split_branches would be never called. Exactly.