[llvm] ISel/AArch64: custom lower vector ISD::LRINT, ISD::LLRINT (PR #89035)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 17 07:27:36 PDT 2024


artagnon wrote:

The patch, as it is written, doesn't function with NEON, as I call `getPredicateForVector()`, which requires scalable vectors.

```
   4415
   4416	  // Finally, truncate the rounded floating point to an integer, rounding to
   4417	  // zero.
-> 4418	  SDValue Pred = getPredicateForVector(DAG, DL, ContainerVT);
   4419	  SDValue Undef = DAG.getUNDEF(ContainerVT);
   4420	  SDValue Truncated =
   4421	      DAG.getNode(AArch64ISD::FCVTZS_MERGE_PASSTHRU, DL, ContainerVT,
```

```
Assertion failed: (VT.isScalableVector() && DAG.getTargetLoweringInfo().isTypeLegal(VT) && "Expected legal scalable vector!"), function getPredicateForScalableVector, file AArch64ISelLowering.cpp, line 26472.
```

I'm not very familiar with NEON, but do you think the patch can be made to work with it?

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


More information about the llvm-commits mailing list