https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84010
--- Comment #6 from Richard Henderson <rth at gcc dot gnu.org> --- For better rematerialization, I wonder if it wouldn't be better to represent this as (set (reg:P tmp) (const:P (unspec [(symbol_ref "xxx")] UNSPEC_TLSIE))) prior to reload, and split to sethi+add+ld only after reload. That makes the rhs CONSTANT_P, which gets us into the right sort of paths in lra and reload. It also means we'll never spill just part of the expression.