Current SimplifyDemandedBits attempts to generate FGETSIGN from a bitcast of f16->i16 that only wants the signbit. That on its own is fine, except that we end up producing a bad shift node downstream. If we fix *that*, we'll run into issues legalizing the FGETSIGN in such a way that we don't end up right back with a bitcast followed by a shift, which is what we started with.
So. Instead simply skip out if we have a f16, which is the same thing we do for f128. This maybe isn't ideal, but it fixes the immediate problem (a crash) and a long-term right fix is somewhat non-obvious, so this will do fine.