[llvm-branch-commits] [clang] [clang][bytecode][HLSL][Matrix] Support `ConstantMatrixType` and more HLSL casts in the new constant interpreter for basic matrix constexpr evaluation in HLSL (PR #183424)

Timm Baeder via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Feb 25 21:08:35 PST 2026


================
@@ -2129,6 +2316,25 @@ bool Compiler<Emitter>::visitInitList(ArrayRef<const Expr *> Inits,
     return true;
   }
 
+  if (const auto *MT = QT->getAs<ConstantMatrixType>()) {
+    unsigned NumElts = MT->getNumElementsFlattened();
+    assert(Inits.size() == NumElts);
+
+    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 < NumElts; ++I) {
----------------
tbaederr wrote:

```suggestion
    for (unsigned I = 0; I != NumElts; ++I) {
```

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


More information about the llvm-branch-commits mailing list