Under fp16 we have to lower via custom lowering a bitcast.
If the bitcast is between a i32 and a f32, we currently look for the pattern we want and if we don't find it we return SDValue(), which makes the underlying DAG legaliser expand the code to a stack load and store. The i32 to f32 bitcast should still be legal though, so the whole thing has been rewritten as a dag combine.
Seems to help in some of the MVE scalarised code too.
Can we make this optimization a TargetDAGCombine, instead of wedging it into legalization?