[llvm] [AArch64][SVE] Use SVE for scalar FP converts in streaming[-compatible] functions (1/n) (PR #118505)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 5 09:48:20 PST 2024


================
@@ -18989,13 +18989,75 @@ static SDValue performVectorCompareAndMaskUnaryOpCombine(SDNode *N,
   return SDValue();
 }
 
+/// Tries to replace scalar FP <-> INT conversions with SVE in streaming
+/// functions, this can help to reduce the number of fmovs to/from GPRs.
+static SDValue
+tryToReplaceScalarFPConversionWithSVE(SDNode *N, SelectionDAG &DAG,
+                                      const AArch64Subtarget *Subtarget) {
----------------
MacDue wrote:

Moved this to after legalize ops, which did require adjusting it to look through `fp_extend` and `fp_round` in some cases as SVE has a wider range of conversions than Neon (without `fullfp16`, I think). 

https://github.com/llvm/llvm-project/pull/118505


More information about the llvm-commits mailing list