Bump github/codeql-action from 3.27.1 to 3.27.4
[glslang.git] / Test / hlsl.waveprefix.comp
blobe4b4367d99d35ac9d6394877a234a5de965f7fa3
1 struct Types\r
2 {\r
3         uint4 u;\r
4         int4 i;\r
5         float4 f;\r
6         double4 d;\r
7 };\r
8 \r
9 RWStructuredBuffer<Types> data;\r
11 [numthreads(32, 16, 1)]\r
12 void CSMain(uint3 dti : SV_DispatchThreadID)\r
13 {\r
14         data[dti.x].u = WavePrefixSum(data[dti.x].u);\r
15         data[dti.x].u.x = WavePrefixSum(data[dti.x].u.x);\r
16         data[dti.x].u.xy = WavePrefixSum(data[dti.x].u.xy);\r
17         data[dti.x].u.xyz = WavePrefixSum(data[dti.x].u.xyz);\r
19         data[dti.x].i = WavePrefixSum(data[dti.x].i);\r
20         data[dti.x].i.x = WavePrefixSum(data[dti.x].i.x);\r
21         data[dti.x].i.xy = WavePrefixSum(data[dti.x].i.xy);\r
22         data[dti.x].i.xyz = WavePrefixSum(data[dti.x].i.xyz);\r
24         data[dti.x].f = WavePrefixSum(data[dti.x].f);\r
25         data[dti.x].f.x = WavePrefixSum(data[dti.x].f.x);\r
26         data[dti.x].f.xy = WavePrefixSum(data[dti.x].f.xy);\r
27         data[dti.x].f.xyz = WavePrefixSum(data[dti.x].f.xyz);\r
29         data[dti.x].d = WavePrefixSum(data[dti.x].d);\r
30         data[dti.x].d.x = WavePrefixSum(data[dti.x].d.x);\r
31         data[dti.x].d.xy = WavePrefixSum(data[dti.x].d.xy);\r
32         data[dti.x].d.xyz = WavePrefixSum(data[dti.x].d.xyz);\r
34         data[dti.x].u = WavePrefixProduct(data[dti.x].u);\r
35         data[dti.x].u.x = WavePrefixProduct(data[dti.x].u.x);\r
36         data[dti.x].u.xy = WavePrefixProduct(data[dti.x].u.xy);\r
37         data[dti.x].u.xyz = WavePrefixProduct(data[dti.x].u.xyz);\r
39         data[dti.x].i = WavePrefixProduct(data[dti.x].i);\r
40         data[dti.x].i.x = WavePrefixProduct(data[dti.x].i.x);\r
41         data[dti.x].i.xy = WavePrefixProduct(data[dti.x].i.xy);\r
42         data[dti.x].i.xyz = WavePrefixProduct(data[dti.x].i.xyz);\r
44         data[dti.x].f = WavePrefixProduct(data[dti.x].f);\r
45         data[dti.x].f.x = WavePrefixProduct(data[dti.x].f.x);\r
46         data[dti.x].f.xy = WavePrefixProduct(data[dti.x].f.xy);\r
47         data[dti.x].f.xyz = WavePrefixProduct(data[dti.x].f.xyz);\r
49         data[dti.x].d = WavePrefixProduct(data[dti.x].d);\r
50         data[dti.x].d.x = WavePrefixProduct(data[dti.x].d.x);\r
51         data[dti.x].d.xy = WavePrefixProduct(data[dti.x].d.xy);\r
52         data[dti.x].d.xyz = WavePrefixProduct(data[dti.x].d.xyz);\r
54         data[dti.x].u.x = WavePrefixCountBits(data[dti.x].u.x == 0);\r
55 }\r