[llvm] [AArch64] Fix lowring error for masked load/store integer scalable ve… (PR #99354)

Dinar Temirbulatov via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 19 10:10:20 PDT 2024


================
@@ -6912,32 +6911,30 @@ SDValue DAGTypeLegalizer::WidenVecOp_MSTORE(SDNode *N, unsigned OpNo) {
   SDValue Mask = MST->getMask();
   EVT MaskVT = Mask.getValueType();
   SDValue StVal = MST->getValue();
+  EVT VT = StVal.getValueType();
   SDLoc dl(N);
 
   if (OpNo == 1) {
     // Widen the value.
     StVal = GetWidenedVector(StVal);
-
-    // The mask should be widened as well.
+    // The mask should be widened as well
     EVT WideVT = StVal.getValueType();
-    EVT WideMaskVT = EVT::getVectorVT(*DAG.getContext(),
-                                      MaskVT.getVectorElementType(),
-                                      WideVT.getVectorNumElements());
+    EVT WideMaskVT =
+        EVT::getVectorVT(*DAG.getContext(), MaskVT.getVectorElementType(),
+                         WideVT.getVectorElementCount());
     Mask = ModifyToType(Mask, WideMaskVT, true);
   } else {
     // Widen the mask.
     EVT WideMaskVT = TLI.getTypeToTransformTo(*DAG.getContext(), MaskVT);
     Mask = ModifyToType(Mask, WideMaskVT, true);
 
-    EVT ValueVT = StVal.getValueType();
-    EVT WideVT = EVT::getVectorVT(*DAG.getContext(),
-                                  ValueVT.getVectorElementType(),
+    EVT WideVT = EVT::getVectorVT(*DAG.getContext(), VT.getVectorElementType(),
----------------
dtemirbulatov wrote:

Done.

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


More information about the llvm-commits mailing list