[llvm] [AArch64] Tighten conditions for expanding GET_ACTIVE_LANE_MASK (PR #208962)
Paul Walker via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 13 06:46:16 PDT 2026
================
@@ -34374,15 +34375,23 @@ SDValue
AArch64TargetLowering::LowerGET_ACTIVE_LANE_MASK(SDValue Op,
SelectionDAG &DAG) const {
EVT VT = Op.getValueType();
- assert(VT.isFixedLengthVector() && "Expected fixed length vector type!");
+ assert((VT.isFixedLengthVector() || VT == MVT::nxv1i1) &&
+ "Expected fixed length vector type or nxv1i1!");
assert(Subtarget->isSVEorStreamingSVEAvailable() &&
"Lowering fixed length get_active_lane_mask requires SVE!");
+ SDLoc DL(Op);
+ if (VT == MVT::nxv1i1) {
+ EVT NewMaskTy = MVT::nxv2i1;
+ SDValue Mask = DAG.getNode(ISD::GET_ACTIVE_LANE_MASK, DL, NewMaskTy,
+ Op.getOperand(0), Op.getOperand(1));
+ return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Mask,
+ DAG.getVectorIdxConstant(0, DL));
----------------
paulwalker-arm wrote:
```suggestion
return DAG.getExtractSubvector(DL, VT, Mask, 0);
```
https://github.com/llvm/llvm-project/pull/208962
More information about the llvm-commits
mailing list