[llvm] [AArch64] Fix lowring error for masked load/store integer scalable ve… (PR #99354)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 17 21:58:12 PDT 2024
================
@@ -5749,18 +5749,27 @@ SDValue DAGTypeLegalizer::WidenVecRes_VP_STRIDED_LOAD(VPStridedLoadSDNode *N) {
SDValue DAGTypeLegalizer::WidenVecRes_MLOAD(MaskedLoadSDNode *N) {
- EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(),N->getValueType(0));
+ EVT VT = N->getValueType(0);
+ EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
SDValue Mask = N->getMask();
EVT MaskVT = Mask.getValueType();
SDValue PassThru = GetWidenedVector(N->getPassThru());
ISD::LoadExtType ExtType = N->getExtensionType();
SDLoc dl(N);
- // The mask should be widened as well
- EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
- MaskVT.getVectorElementType(),
- WidenVT.getVectorNumElements());
- Mask = ModifyToType(Mask, WideMaskVT, true);
+ if (VT == MVT::nxv1i8 || VT == MVT::nxv1i16 || VT == MVT::nxv1i32 ||
+ VT == MVT::nxv1i64) {
----------------
arsenm wrote:
Better to check the multiple is 1 instead of listing an arbitrary set?
https://github.com/llvm/llvm-project/pull/99354
More information about the llvm-commits
mailing list