//TEST:SIMPLE(filecheck=CHECK): -target metal //TEST:SIMPLE(filecheck=CHECK-ASM): -target metallib uniform RWStructuredBuffer outputBuffer; struct MyBlock { StructuredBuffer b1; StructuredBuffer b2; } ParameterBlock block; groupshared int myArr[16]; void func(float v) { outputBuffer[0] = myArr[0]; } // CHECK: array threadgroup* myArr{{.*}}; // CHECK: {{\[\[}}kernel{{\]\]}} void main_kernel // CHECK: threadgroup array myArr{{.*}}; // CHECK: (&kernelContext{{.*}})->myArr{{.*}} = &myArr{{.*}}; // CHECK-ASM: define void @main_kernel [numthreads(1,1,1)] void main_kernel(uint3 tid: SV_DispatchThreadID) { myArr[tid.x] = tid.x; func(3.0f); }