summaryrefslogtreecommitdiffstats
path: root/tests/optimization/immutable-buffer-load.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/optimization/immutable-buffer-load.slang')
-rw-r--r--tests/optimization/immutable-buffer-load.slang21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/optimization/immutable-buffer-load.slang b/tests/optimization/immutable-buffer-load.slang
new file mode 100644
index 000000000..251a1ce9c
--- /dev/null
+++ b/tests/optimization/immutable-buffer-load.slang
@@ -0,0 +1,21 @@
+// Test that we can use ImmutablePtr<T> to result in more optimized buffer loads
+// in SPIR-V and CUDA.
+
+//TEST:SIMPLE(filecheck=PTX): -target ptx -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=SPV): -target spirv -O0
+uniform ImmutablePtr<float4> data;
+
+uniform float4* result;
+
+float4 work(ImmutablePtr<float4> ptr)
+{
+ return *ptr;
+}
+
+[numthreads(1,1,1)]
+void computeMain()
+{
+ // SPV: Restrict
+ // PTX: ld.global.nc.v4.f32
+ *result = work(data) + float4(1,2,3,4);
+} \ No newline at end of file