[llvm] [AArch64] Avoid using NEON FCVTXN in Streaming-SVE mode. (PR #91981)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu May 16 05:08:51 PDT 2024


================
@@ -19507,7 +19507,27 @@ static SDValue performBuildVectorCombine(SDNode *N,
   SDLoc DL(N);
   EVT VT = N->getValueType(0);
 
-  if (VT == MVT::v4f16 || VT == MVT::v4bf16) {
+  const auto &Subtarget = DAG.getSubtarget<AArch64Subtarget>();
+  bool CanUseFCVTXN = Subtarget.isNeonAvailable() ||
+                      (Subtarget.useSVEForFixedLengthVectors() &&
+                       (Subtarget.hasSVE2() || Subtarget.hasSME()));
----------------
paulwalker-arm wrote:

This isn't sufficient to say we're in streaming mode is it?  Don't we need something like `|| (Subtarget.hasSME() && Subtarget.isStreaming())`

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


More information about the llvm-commits mailing list