summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/bugs/g3180-swizzle-nd-vectors.slang18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/bugs/g3180-swizzle-nd-vectors.slang b/tests/bugs/g3180-swizzle-nd-vectors.slang
new file mode 100644
index 000000000..a6d81740f
--- /dev/null
+++ b/tests/bugs/g3180-swizzle-nd-vectors.slang
@@ -0,0 +1,18 @@
+//TEST:SIMPLE(filecheck=CHECK):-target cpp -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CHECK):-target glsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CHECK):-target hlsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CHECK):-target spirv -emit-spirv-via-glsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CHECK):-target spirv -emit-spirv-directly -entry computeMain -stage compute
+
+// This test tests that assigning to a subscript of a unary swizzle works
+
+RWStructuredBuffer<float> outputBuffer;
+
+[numthreads(1, 1, 1)]
+void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ vector<vector<int, 2>, 2> v;
+ v.x[0] = 1;
+ // CHECK: ([[# @LINE+1]]): error 55200: 'vector<vector<{{.*}}>' is not a supported builtin type for the target.
+ outputBuffer[dispatchThreadID.x] = v.x[0];
+}