blob: c671e6effe3e4fdc41d91c924c38a20997029985 [file] [edit]
// RUN: %clang_cc1 -triple spirv-pc-vulkan-compute -x hlsl -emit-llvm -finclude-default-header -disable-llvm-passes -o - %s | FileCheck %s
struct T {
float2 f1[3];
// FIXME(): matrix support.
// column_major float3x2 f2[2];
// row_major int3x2 f4[2];
// row_major float3x2 f3[2];
};
// %struct.T = type { [3 x <2 x float>] }
struct S {
float f1;
float3 f2;
T f4;
// FIXME(): matrix support.
// row_major int2x3 f5;
// row_major float2x3 f3;
};
// %struct.S = type <{ float, <3 x float>, %struct.T }>
[[vk::push_constant]]
S pcs;
// CHECK: @pcs = external hidden addrspace(13) externally_initialized global %struct.S, align 1
[numthreads(1, 1, 1)]
void main() {
float a = pcs.f1;
// CHECK: %[[#TMP:]] = load float, ptr addrspace(13) @pcs, align 1
// CHECK: store float %[[#TMP]], ptr %a, align 4
}