summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/diagnostics/wavesize-invalid-size.slang18
-rw-r--r--tests/hlsl/wave-size.slang13
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/diagnostics/wavesize-invalid-size.slang b/tests/diagnostics/wavesize-invalid-size.slang
new file mode 100644
index 000000000..840434137
--- /dev/null
+++ b/tests/diagnostics/wavesize-invalid-size.slang
@@ -0,0 +1,18 @@
+//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage compute -entry computeMain
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
+RWStructuredBuffer<int> outputBuffer;
+
+// Print an error when the numLanes is an invalid value for WaveSize.
+// The value has to be a power of 2 between 4 and 128, inclusive.
+// In other words, the set: [4, 8, 16, 32, 64, 128].
+
+// "5" is an invalid value for WaveSize
+// CHECK: error 31103:
+[WaveSize(5)]
+[numthreads(4, 1, 1)]
+void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
+{
+ int tid = dispatchThreadID.x;
+ outputBuffer[tid] = tid;
+}
diff --git a/tests/hlsl/wave-size.slang b/tests/hlsl/wave-size.slang
new file mode 100644
index 000000000..3fc6363c4
--- /dev/null
+++ b/tests/hlsl/wave-size.slang
@@ -0,0 +1,13 @@
+//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage compute -entry computeMain
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
+RWStructuredBuffer<int> outputBuffer;
+
+// CHECK: [WaveSize(4)]
+[WaveSize(4)]
+[numthreads(4, 1, 1)]
+void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
+{
+ int tid = dispatchThreadID.x;
+ outputBuffer[tid] = tid;
+}