[clang] [CIR] Implement handling for VectorType with size 3 (PR #161232)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 29 14:57:11 PDT 2025


================
@@ -314,21 +314,36 @@ void CIRGenFunction::emitStoreOfScalar(mlir::Value value, Address addr,
                                        bool isInit, bool isNontemporal) {
   assert(!cir::MissingFeatures::opLoadStoreThreadLocal());
 
+  mlir::Type srcTy = addr.getElementType();
   if (const auto *clangVecTy = ty->getAs<clang::VectorType>()) {
-    // Boolean vectors use `iN` as storage type.
-    if (clangVecTy->isExtVectorBoolType())
-      cgm.errorNYI(addr.getPointer().getLoc(),
-                   "emitStoreOfScalar ExtVectorBoolType");
+    if (auto vecTy = dyn_cast<cir::VectorType>(srcTy)) {
----------------
andykaylor wrote:

At some point we may need to check that this is not a scalable vector type. Can you add a missing feature assert for scalable vectors here?

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


More information about the cfe-commits mailing list