[llvm] [IR][RFC] Add @llvm.mask.beforefirst intrinsic (PR #203874)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 25 07:12:48 PDT 2026
================
@@ -1741,6 +1747,40 @@ SDValue VectorLegalizer::ExpandLOOP_DEPENDENCE_MASK(SDNode *N) {
return TLI.expandLoopDependenceMask(N, DAG);
}
+SDValue VectorLegalizer::ExpandMASK_BEFOREFIRST(SDNode *N) {
+ // Expand to (setcc ult (step-vector), (cttz_elts x))
+ SDLoc DL(N);
+ EVT VT = N->getValueType(0);
+
+ // Try to expand via get_active_lane_mask if supported.
+ EVT BoolVT = VT.changeVectorElementType(*DAG.getContext(), MVT::i1);
+ EVT VecIdxVT = TLI.getVectorIdxTy(DAG.getDataLayout());
+ if (!TLI.shouldExpandGetActiveLaneMask(BoolVT, VecIdxVT)) {
----------------
lukel97 wrote:
228367a39025 now always expands via get_active_lane_mask
https://github.com/llvm/llvm-project/pull/203874
More information about the llvm-commits
mailing list