summaryrefslogtreecommitdiff
path: root/tests/language-feature
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-03-23 10:54:01 -0700
committerGitHub <noreply@github.com>2024-03-23 10:54:01 -0700
commita23adc221b1ea26db3f3313226b629eb9e308b0f (patch)
tree6f758d64201f2c606dc3e61394899bff4fa72f51 /tests/language-feature
parent9b0df14cdf9d9ea8857b5b9d59505b18020f8414 (diff)
Make `-no-mangle` option work, add `-no-hlsl-binding`. (#3817)
Diffstat (limited to 'tests/language-feature')
-rw-r--r--tests/language-feature/no-hlsl-binding.slang21
-rw-r--r--tests/language-feature/no-mangle.slang27
2 files changed, 48 insertions, 0 deletions
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<float > outputBuffer : register(u2);
+RWStructuredBuffer<float> outputBuffer : register(u2);
+
+// CHECK-DAG: RWStructuredBuffer<int > inputBuffer;
+RWStructuredBuffer<int> 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<MyStruct> 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