xref: /llvm-project/llvm/test/CodeGen/DirectX/legacy_cb_layout_2.ll (revision 8107810cad24d41fe43c6777370c7b81ca83ad84)
1; RUN: opt -S -dxil-translate-metadata < %s | FileCheck %s --check-prefix=DXILMD
2
3target datalayout = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64"
4target triple = "dxil-unknown-shadermodel6.7-library"
5
6; cbuffer B
7; {
8;
9;   struct B
10;   {
11;
12;       double B0[2];                                 ; Offset:    0
13;       float3 B1[3];                                 ; Offset:   32
14;       float B2;                                     ; Offset:   76
15;       double B3[3];                                 ; Offset:   80
16;       half B4;                                      ; Offset:  120
17;       double2 B5[1];                                ; Offset:  128
18;       float B6;                                     ; Offset:  144
19;       half3 B7[2];                                  ; Offset:  160
20;       half3 B8;                                     ; Offset:  182
21;
22;   } B;                                              ; Offset:    0 Size:   188
23;
24; }
25;
26; cbuffer B
27; {
28;
29;   struct B.0
30;   {
31;
32;       double3 B9[3];                                ; Offset:    0
33;       half3 B10;                                    ; Offset:   88
34;
35;   } B;                                              ; Offset:    0 Size:    94
36;
37; }
38
39
40; Make sure the size is 188.
41; DXILMD:!{i32 0, ptr @B.cb., !"", i32 0, i32 1, i32 1, i32 188}
42; Make sure the size is 94.
43; DXILMD:!{i32 1, ptr @B.cb..1, !"", i32 0, i32 2, i32 1, i32 94}
44
45@B.cb. = external local_unnamed_addr constant { [2 x double], [3 x <3 x float>], float, [3 x double], half, [1 x <2 x double>], float, [2 x <3 x half>], <3 x half> }
46@B.cb..1 = external local_unnamed_addr constant { [3 x <3 x double>], <3 x half> }
47
48!hlsl.cbufs = !{!0, !1}
49
50!0 = !{ptr @B.cb., !"B.cb.ty", i32 13, i1 false, i32 1, i32 0}
51!1 = !{ptr @B.cb..1, !"B.cb.ty", i32 13, i1 false, i32 2, i32 0}
52