82 lines
3.4 KiB
LLVM
82 lines
3.4 KiB
LLVM
; RUN: opt -S -dxil-metadata-emit < %s | FileCheck %s --check-prefix=DXILMD
|
|
|
|
target 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"
|
|
target triple = "dxil-unknown-shadermodel6.7-library"
|
|
|
|
; cbuffer D
|
|
; {
|
|
;
|
|
; struct D
|
|
; {
|
|
;
|
|
; int D0; ; Offset: 0
|
|
; struct struct.B
|
|
; {
|
|
;
|
|
; double B0; ; Offset: 16
|
|
; float3 B1; ; Offset: 32
|
|
; float B2; ; Offset: 44
|
|
; double3 B3; ; Offset: 48
|
|
; half B4; ; Offset: 72
|
|
; double2 B5; ; Offset: 80
|
|
; float B6; ; Offset: 96
|
|
; half3 B7; ; Offset: 100
|
|
; half3 B8; ; Offset: 106
|
|
;
|
|
; } D1; ; Offset: 16
|
|
;
|
|
; half D2; ; Offset: 112
|
|
; struct struct.C
|
|
; {
|
|
;
|
|
; struct struct.A
|
|
; {
|
|
;
|
|
; float A0; ; Offset: 128
|
|
; double A1; ; Offset: 136
|
|
; float A2; ; Offset: 144
|
|
; half A3; ; Offset: 148
|
|
; int16_t A4; ; Offset: 150
|
|
; int64_t A5; ; Offset: 152
|
|
; int A6; ; Offset: 160
|
|
;
|
|
; } C0; ; Offset: 128
|
|
;
|
|
; float C1[1]; ; Offset: 176
|
|
; struct struct.B
|
|
; {
|
|
;
|
|
; double B0; ; Offset: 192
|
|
; float3 B1; ; Offset: 208
|
|
; float B2; ; Offset: 220
|
|
; double3 B3; ; Offset: 224
|
|
; half B4; ; Offset: 248
|
|
; double2 B5; ; Offset: 256
|
|
; float B6; ; Offset: 272
|
|
; half3 B7; ; Offset: 276
|
|
; half3 B8; ; Offset: 282
|
|
;
|
|
; } C2[2];; ; Offset: 192
|
|
;
|
|
; half C3; ; Offset: 384
|
|
;
|
|
; } D3; ; Offset: 128
|
|
;
|
|
; double D4; ; Offset: 392
|
|
;
|
|
; } D; ; Offset: 0 Size: 400
|
|
|
|
|
|
; Make sure the size is 400
|
|
; DXILMD:!{i32 0, ptr @D.cb., !"", i32 0, i32 1, i32 1, i32 400}
|
|
|
|
|
|
%struct.B = type <{ double, <3 x float>, float, <3 x double>, half, <2 x double>, float, <3 x half>, <3 x half> }>
|
|
%struct.C = type <{ %struct.A, [1 x float], [2 x %struct.B], half }>
|
|
%struct.A = type <{ float, double, float, half, i16, i64, i32 }>
|
|
|
|
@D.cb. = external local_unnamed_addr constant { i32, %struct.B, half, %struct.C, double }
|
|
|
|
!hlsl.cbufs = !{!0}
|
|
!0 = !{ptr @D.cb., !"D.cb.ty", i32 13, i1 false, i32 1, i32 0}
|