https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113384
--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> --- These fails only when generating PA 2.0 code. The fails don't occur when generating the default PA 1.1 code. Wrong code is generated for this line in dependency_58.f90: b%im = a%im - 0.5 b%re is set instead of b%im. We have the following PA 1.1 assembly code: 0x00010ab0 <MAIN__+852>: fsub,sgl fr23,fr22,fr22 0x00010ab4 <MAIN__+856>: ldo 64(r20),r20 0x00010ab8 <MAIN__+860>: depw,z r20,28,29,r20 0x00010abc <MAIN__+864>: ldo 8(r3),r21 0x00010ac0 <MAIN__+868>: add,l r21,r20,r20 0x00010ac4 <MAIN__+872>: fstw fr22,0(r20) This is PA 1.1 code: fsub,sgl %fr23L,%fr22L,%fr22L ldo 8(%r3),%r20 ldo 800(%r20),%r20 ldo 4(%r20),%r20 zdep %r21,28,29,%r21 addl %r21,%r20,%r20 fstws %fr22L,0(%r20) We miss this ldo instruction in PA 2.0: ldo 4(%r20),%r20 It adds 4 to the address to access the imaginary part of b.