[llvm] [AArch64] Improve fixed vector lowering for cttz/ctlz when sve (PR #192427)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Wed May 6 05:05:45 PDT 2026


================
@@ -11701,11 +11706,10 @@ SDValue AArch64TargetLowering::LowerCTPOP_PARITY(SDValue Op,
 
 SDValue AArch64TargetLowering::LowerCTTZ(SDValue Op, SelectionDAG &DAG) const {
   EVT VT = Op.getValueType();
-  assert(VT.isScalableVector() || VT == MVT::v8i8 || VT == MVT::v16i8 ||
-         VT == MVT::v8i16 || VT == MVT::v4i16 || VT == MVT::v2i32 ||
-         VT == MVT::v4i32 ||
+  assert(VT.isScalableVector() ||
          useSVEForFixedLengthVectorVT(
-             VT, /*OverrideNEON=*/Subtarget->useSVEForFixedLengthVectors()));
+             VT, /*OverrideNEON=*/Subtarget->isSVEorStreamingSVEAvailable()) ||
+         VT.getScalarSizeInBits() < 64);
----------------
paulwalker-arm wrote:

The original assert essentially does nothing so I've removed it. Please rebase and then this change can be removed.

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


More information about the llvm-commits mailing list