blob: 9c7b8929530247cef499de6cdd61dfc6b3e61cf6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
//TEST:SIMPLE(filecheck=CHECK): -target spirv -stage compute -entry main -emit-spirv-directly
// Test that we can transform a continue in a while loop to valid spirv.
uniform int loopCount;
// CHECK: OpEntryPoint
bool condition1()
{
AllMemoryBarrier();
return output[2] < 1;
}
bool condition2()
{
AllMemoryBarrier();
return output[3] < 1;
}
RWStructuredBuffer<float> output;
[numthreads(1,1,1)]
void main()
{
float weight = 0.0;
do
{
if (condition2())
{
continue;
}
AllMemoryBarrier();
} while (condition1());
while(condition1())
{
if (condition2())
{
continue;
}
AllMemoryBarrier();
}
output[0] = weight;
}
|