From 1b3a428bfa24350d9d69b092747b4ad142b7c4b4 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 6 May 2024 19:21:03 -0700 Subject: Support groupshared variables for Metal. (#4116) --- tests/metal/groupshared.slang | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/metal/groupshared.slang (limited to 'tests') diff --git a/tests/metal/groupshared.slang b/tests/metal/groupshared.slang new file mode 100644 index 000000000..4d1f6ecac --- /dev/null +++ b/tests/metal/groupshared.slang @@ -0,0 +1,31 @@ +//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); +} -- cgit v1.2.3