[llvm] [AArch64][SelectionDAG] Avoid cross-bank copy for NEON vcvtfp2fx result (PR #210275)

Kieran B via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 23 03:13:41 PDT 2026


================
@@ -9121,6 +9121,49 @@ defm FCVTZS : SIMDFPScalarRShift<0, 0b11111, "fcvtzs">;
 defm FCVTZU : SIMDFPScalarRShift<1, 0b11111, "fcvtzu">;
 defm SCVTF  : SIMDFPScalarRShift<0, 0b11100, "scvtf">;
 defm UCVTF  : SIMDFPScalarRShift<1, 0b11100, "ucvtf">;
+
+// Transformation for SIMD shift imm to fixed point imm for FPR-to-GPR result
+def fixedpoint_scalar_xform : SDNodeXForm<timm, [{
----------------
kieroxide wrote:

It does not cause problems currently as GIsel never matches this pattern due the the register banks remaining in FPR. When GIsel patch is completed, we will need an identity renderer for vecshift -> fixedpoint. Which will have to be linked with a  separate SDNodeXform

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


More information about the llvm-commits mailing list