https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64412
--- Comment #16 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Uroš Bizjak from comment #15)
> (In reply to H.J. Lu from comment #14)
>
> > This is generated in the backend:
>
> Yes, but the question is, why somehow similar testcase legitimizes the
> address correctly with -fpic, while the original testcase doesn't.
My impressions are most of PIC addresses like:
6: r92:DI=[const(unspec[`G'] 2)]
7: r91:DI=r92:DI
REG_EQUAL `G'
8: {r90:DI=r89:DI+r91:DI;clobber flags:CC;}
is generated by x86 backend vi ix86_expand_move and x86 backend was never
presented with other opportunities before. X86 backend isn't prepared to
handle some RTL expansions from offload.