commit 62082d278d suggests that this is expected to work as is for any target that has movw/movt. So has this regressed at some point? Or are there some CPU/arch options that are still causing this to fail. I wonder if this is a costing issue somewhere, but I'm missing the details of which targets are causing problems.
-- https://forge.sourceware.org/gcc/gcc/pulls/198#issuecomment-6816
