This patch adds more pattern matching for f16 <-> f64 conversions, specifically when the conversion is done in two steps, f16 -> f32 -> f64 etc.
For example:
%1 = tail call float @llvm.convert.from.fp16.f32(i16 %0)
%conv = fpext float %1 to double
-->
vcvtb.f64.f16