This includes a hack to fix illegal 32 to 16 bit copies.
The problem is when we make 16 bit subregs legal it creates
a huge amount of failures which can only be resolved at once
without a temporary hack like this.
The next step is to change operands, instruction definitions
and patterns until this hack is not needed.
There are also quite obvious regressions as seen in the tests,
but surprisingly not as huge as I expected.
I am not really sure it needs to be pushed right away, but
I definitely want to review it now and agree on the general
direction.
This is a red flag, this should never happen