[llvm] [AArch64][SVE] Lower scalar converts to SVE when Neon is unavailable (PR #112564)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 22 05:58:40 PDT 2024


================
@@ -2421,6 +2421,42 @@ let Predicates = [HasSVEorSME] in {
   defm FSQRT_ZPmZ  : sve_fp_2op_p_zd_HSD<0b01101, "fsqrt",  AArch64fsqrt_mt>;
 } // End HasSVEorSME
 
+// Helper for creating scalar fp -> int -> fp conversions using SVE.
----------------
MacDue wrote:

Updated to lower `FP_TO_INT` and `INT_TO_FP` separately. I did not reuse `LowerFixedLengthFPToIntToSVE()` and `LowerFixedLengthIntToFPToSVE()`, but rather used the general SVE lowering. The ``LowerFixedLength...` methods are not really what we want here as they can introduce unnecessary packing/unpacking when the value we are about is only in lane 0.

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


More information about the llvm-commits mailing list