https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62025

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Just verified the trunk and it is the same thing there, also sched2 generating:
        al      %r3,252(%r8)
        ahi     %r8,128
        alc     %r2,120(%r8)
where the first insn is cc setter, second cc clobber and third cc user and
clobber, so the r8=r8+128 insn should not have been scheduled in between those
two.  It seems scheduler has some code to adjust the address (248 -> 120) based
on the r8 adjustment, otherwise it would be wrong to move it even because of r8
register, perhaps if we take that path we don't fully check other side effects
(cc clobber in this case).  s390 AFAIK doesn't have addition which doesn't
clobber flags, unlike many other architectures.

Reply via email to