summaryrefslogtreecommitdiffstats
path: root/tests/cooperative-vector/load-store-arbitrary-array-vec.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cooperative-vector/load-store-arbitrary-array-vec.slang')
-rw-r--r--tests/cooperative-vector/load-store-arbitrary-array-vec.slang35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/cooperative-vector/load-store-arbitrary-array-vec.slang b/tests/cooperative-vector/load-store-arbitrary-array-vec.slang
new file mode 100644
index 000000000..f577ae5f3
--- /dev/null
+++ b/tests/cooperative-vector/load-store-arbitrary-array-vec.slang
@@ -0,0 +1,35 @@
+//DISABLE_TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -xslang -skip-spirv-validation
+
+// CHECK: 1
+// CHECK-NEXT: 2
+// CHECK-NEXT: 3
+// CHECK-NEXT: 4
+// CHECK-NEXT: 5
+// CHECK-NEXT: 6
+// CHECK-NEXT: 7
+// CHECK-NEXT: 8
+// CHECK-NEXT: 9
+// CHECK-NEXT: A
+// CHECK-NEXT: B
+// CHECK-NEXT: C
+// CHECK-NEXT: D
+// CHECK-NEXT: E
+// CHECK-NEXT: F
+
+//TEST_INPUT:ubuffer(data=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]):name=input
+RWByteAddressBuffer input;
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]):out,name=outputBuffer
+RWStructuredBuffer<uint32_t> outputBuffer;
+
+groupshared float3[5] temp;
+
+[numthreads(1, 1, 1)]
+void computeMain()
+{
+ let vec = coopVecLoad<15, uint32_t>(input);
+ vec.storeAny(temp);
+ let result = CoopVec<uint32_t, 15>.loadAny(temp);
+ for(int i = 0; i < result.getCount(); ++i)
+ outputBuffer[i] = result[i];;
+}