https://github.com/paulwalker-arm commented: To me this looks more like a DAGCombine rather than a lowering problem. You're essentially saying `fp_op->gpr->fpr` should be rewritten as `new_fp_op` when possible. https://github.com/llvm/llvm-project/pull/112564