================
@@ -2129,6 +2328,25 @@ bool Compiler<Emitter>::visitInitList(ArrayRef<const 
Expr *> Inits,
     return true;
   }
 
+  if (const auto *MT = QT->getAs<ConstantMatrixType>()) {
+    unsigned NumElems = MT->getNumElementsFlattened();
+    assert(Inits.size() == NumElems);
+
+    QualType ElemQT = MT->getElementType();
+    PrimType ElemT = classifyPrim(ElemQT);
+
+    // InitListExpr elements are in column-major order.
+    // Store in row-major order to match APValue convention.
+    for (unsigned I = 0; I != NumElems; ++I) {
+      if (!this->visit(Inits[I]))
+        return false;
+      if (!this->emitInitElem(ElemT,
+                              MT->mapColumnMajorToRowMajorFlattenedIndex(I), 
E))
----------------
Icohedron wrote:

It is a new helper function introduced in PR  #178762, which this PR builds on 
top of.

https://github.com/llvm/llvm-project/pull/178762/changes#diff-9a220334d4bd4424ff69011a957b9c25e6fcbca3d95db917e590fa23381c45b2R4439

https://github.com/llvm/llvm-project/pull/183424
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to