From a23adc221b1ea26db3f3313226b629eb9e308b0f Mon Sep 17 00:00:00 2001 From: Yong He Date: Sat, 23 Mar 2024 10:54:01 -0700 Subject: Make `-no-mangle` option work, add `-no-hlsl-binding`. (#3817) --- tests/language-feature/no-hlsl-binding.slang | 21 +++++++++++++++++++++ tests/language-feature/no-mangle.slang | 27 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/language-feature/no-hlsl-binding.slang create mode 100644 tests/language-feature/no-mangle.slang (limited to 'tests/language-feature') diff --git a/tests/language-feature/no-hlsl-binding.slang b/tests/language-feature/no-hlsl-binding.slang new file mode 100644 index 000000000..57f0449f9 --- /dev/null +++ b/tests/language-feature/no-hlsl-binding.slang @@ -0,0 +1,21 @@ +//TEST:SIMPLE(filecheck=CHECK):-target hlsl -entry main -profile cs_6_0 -no-mangle -no-hlsl-binding + +// Test that -no-hlsl-binding option disables automatically assigned bindings in the hlsl output. + +// CHECK-DAG: cbuffer {{.*}} : register(b3) +cbuffer MyCB : register(b3) +{ + int member; +} + +// CHECK-DAG: RWStructuredBuffer outputBuffer : register(u2); +RWStructuredBuffer outputBuffer : register(u2); + +// CHECK-DAG: RWStructuredBuffer inputBuffer; +RWStructuredBuffer inputBuffer; + +[numthreads(1,1,1)] +void main() +{ + outputBuffer[0] = inputBuffer[0] + member; +} diff --git a/tests/language-feature/no-mangle.slang b/tests/language-feature/no-mangle.slang new file mode 100644 index 000000000..11462ef26 --- /dev/null +++ b/tests/language-feature/no-mangle.slang @@ -0,0 +1,27 @@ +//TEST:SIMPLE(filecheck=CHECK):-target hlsl -entry main -profile cs_6_0 -no-mangle + +// Test that -no-mangle option disables name mangling on global parameters and struct fields. + +cbuffer BufferName +{ + int cbufferParam; +} + +struct MyStruct +{ + int v; +} + +RWStructuredBuffer outputBuffer; + +// CHECK-DAG: SLANG_ParameterGroup_BufferName{{.*}} BufferName; + +// CHECK-DAG: RWStructuredBuffer<{{.*}}> outputBuffer : + +[numthreads(1,1,1)] +void main() +{ + // CHECK-DAG: = {{.*}}cbufferParam; + + outputBuffer[0].v = cbufferParam; +} \ No newline at end of file -- cgit v1.2.3