================
@@ -0,0 +1,71 @@
+// RUN: %clang_cc1 -std=hlsl202x -finclude-default-header -x hlsl -triple 
dxil-pc-shadermodel6.3-library %s -fnative-half-type -fsyntax-only -verify 
-verify-ignore-unexpected=warning
+
+cbuffer MatArr0Pass {
+  float2x4 A0p[2] : packoffset(c0.x);
+  float    a0tail : packoffset(c4.x);
+}
+
+cbuffer MatArr0Fail {
----------------
farzonl wrote:

I think I have this right in my head for these tests but mostly just copied  
clang/test/CodeGenHLSL/resources/cbuffer_align.hlsl but varied the constant 
registers more because those test were just against c0 and c1.

```
c0 -> the first constant register
c1 -> the second
c5 -> the sixth
c10 -> the eleventh
…and so on.
```

After the register index, the .x/.y/.z/.w suffix picks a component within the 
4-component register:
```
c5.x  -> the first 32-bit component (lowest) of register c5
c1.w  -> the fourth component of register c1
c0.y  -> the second component of register c0
c4.z  -> the third component of register c4
```

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

Reply via email to