1617a3babSopenharmony_cispv.atomic.comp
2617a3babSopenharmony_ci// Module Version 10000
3617a3babSopenharmony_ci// Generated by (magic number): 8000b
4617a3babSopenharmony_ci// Id's are bound by 74
5617a3babSopenharmony_ci
6617a3babSopenharmony_ci                              Capability Shader
7617a3babSopenharmony_ci                              Capability AtomicStorage
8617a3babSopenharmony_ci               1:             ExtInstImport  "GLSL.std.450"
9617a3babSopenharmony_ci                              MemoryModel Logical GLSL450
10617a3babSopenharmony_ci                              EntryPoint GLCompute 4  "main"
11617a3babSopenharmony_ci                              ExecutionMode 4 LocalSize 1 1 1
12617a3babSopenharmony_ci                              Source GLSL 450
13617a3babSopenharmony_ci                              Name 4  "main"
14617a3babSopenharmony_ci                              Name 10  "func(au1;"
15617a3babSopenharmony_ci                              Name 9  "c"
16617a3babSopenharmony_ci                              Name 12  "atoms("
17617a3babSopenharmony_ci                              Name 20  "counter"
18617a3babSopenharmony_ci                              Name 23  "val"
19617a3babSopenharmony_ci                              Name 27  "countArr"
20617a3babSopenharmony_ci                              Name 37  "origi"
21617a3babSopenharmony_ci                              Name 39  "atomi"
22617a3babSopenharmony_ci                              Name 42  "origu"
23617a3babSopenharmony_ci                              Name 44  "atomu"
24617a3babSopenharmony_ci                              Name 45  "value"
25617a3babSopenharmony_ci                              Name 62  "dataSSB"
26617a3babSopenharmony_ci                              MemberName 62(dataSSB) 0  "f"
27617a3babSopenharmony_ci                              MemberName 62(dataSSB) 1  "n_frames_rendered"
28617a3babSopenharmony_ci                              Name 64  "result"
29617a3babSopenharmony_ci                              Name 71  "arrX"
30617a3babSopenharmony_ci                              Name 72  "arrY"
31617a3babSopenharmony_ci                              Name 73  "arrZ"
32617a3babSopenharmony_ci                              Decorate 20(counter) Offset 0
33617a3babSopenharmony_ci                              Decorate 20(counter) DescriptorSet 0
34617a3babSopenharmony_ci                              Decorate 20(counter) Binding 0
35617a3babSopenharmony_ci                              Decorate 27(countArr) Offset 4
36617a3babSopenharmony_ci                              Decorate 27(countArr) DescriptorSet 0
37617a3babSopenharmony_ci                              Decorate 27(countArr) Binding 0
38617a3babSopenharmony_ci                              MemberDecorate 62(dataSSB) 0 Restrict
39617a3babSopenharmony_ci                              MemberDecorate 62(dataSSB) 0 Offset 0
40617a3babSopenharmony_ci                              MemberDecorate 62(dataSSB) 1 Restrict
41617a3babSopenharmony_ci                              MemberDecorate 62(dataSSB) 1 Offset 16
42617a3babSopenharmony_ci                              Decorate 62(dataSSB) BufferBlock
43617a3babSopenharmony_ci                              Decorate 64(result) DescriptorSet 0
44617a3babSopenharmony_ci                              Decorate 64(result) Binding 0
45617a3babSopenharmony_ci               2:             TypeVoid
46617a3babSopenharmony_ci               3:             TypeFunction 2
47617a3babSopenharmony_ci               6:             TypeInt 32 0
48617a3babSopenharmony_ci               7:             TypePointer AtomicCounter 6(int)
49617a3babSopenharmony_ci               8:             TypeFunction 6(int) 7(ptr)
50617a3babSopenharmony_ci              14:      6(int) Constant 1
51617a3babSopenharmony_ci              15:      6(int) Constant 0
52617a3babSopenharmony_ci              19:      6(int) Constant 1032
53617a3babSopenharmony_ci     20(counter):      7(ptr) Variable AtomicCounter
54617a3babSopenharmony_ci              22:             TypePointer Function 6(int)
55617a3babSopenharmony_ci              24:      6(int) Constant 4
56617a3babSopenharmony_ci              25:             TypeArray 6(int) 24
57617a3babSopenharmony_ci              26:             TypePointer AtomicCounter 25
58617a3babSopenharmony_ci    27(countArr):     26(ptr) Variable AtomicCounter
59617a3babSopenharmony_ci              28:             TypeInt 32 1
60617a3babSopenharmony_ci              29:     28(int) Constant 2
61617a3babSopenharmony_ci              33:     28(int) Constant 1
62617a3babSopenharmony_ci              36:             TypePointer Function 28(int)
63617a3babSopenharmony_ci              38:             TypePointer Workgroup 28(int)
64617a3babSopenharmony_ci       39(atomi):     38(ptr) Variable Workgroup
65617a3babSopenharmony_ci              40:     28(int) Constant 3
66617a3babSopenharmony_ci              43:             TypePointer Workgroup 6(int)
67617a3babSopenharmony_ci       44(atomu):     43(ptr) Variable Workgroup
68617a3babSopenharmony_ci       45(value):     43(ptr) Variable Workgroup
69617a3babSopenharmony_ci              48:      6(int) Constant 7
70617a3babSopenharmony_ci              53:     28(int) Constant 7
71617a3babSopenharmony_ci              57:      6(int) Constant 10
72617a3babSopenharmony_ci              60:             TypeFloat 32
73617a3babSopenharmony_ci              61:             TypeVector 28(int) 4
74617a3babSopenharmony_ci     62(dataSSB):             TypeStruct 60(float) 61(ivec4)
75617a3babSopenharmony_ci              63:             TypePointer Uniform 62(dataSSB)
76617a3babSopenharmony_ci      64(result):     63(ptr) Variable Uniform
77617a3babSopenharmony_ci              65:      6(int) Constant 2
78617a3babSopenharmony_ci              66:             TypePointer Uniform 28(int)
79617a3babSopenharmony_ci              69:             TypeArray 28(int) 14
80617a3babSopenharmony_ci              70:             TypePointer Private 69
81617a3babSopenharmony_ci        71(arrX):     70(ptr) Variable Private
82617a3babSopenharmony_ci        72(arrY):     70(ptr) Variable Private
83617a3babSopenharmony_ci        73(arrZ):     70(ptr) Variable Private
84617a3babSopenharmony_ci         4(main):           2 Function None 3
85617a3babSopenharmony_ci               5:             Label
86617a3babSopenharmony_ci         23(val):     22(ptr) Variable Function
87617a3babSopenharmony_ci                              MemoryBarrier 14 19
88617a3babSopenharmony_ci              21:      6(int) FunctionCall 10(func(au1;) 20(counter)
89617a3babSopenharmony_ci              30:      7(ptr) AccessChain 27(countArr) 29
90617a3babSopenharmony_ci              31:      6(int) AtomicLoad 30 14 15
91617a3babSopenharmony_ci                              Store 23(val) 31
92617a3babSopenharmony_ci              32:      6(int) AtomicIDecrement 20(counter) 14 15
93617a3babSopenharmony_ci              34:      6(int) ISub 32 33
94617a3babSopenharmony_ci              35:      6(int) AtomicIIncrement 20(counter) 14 15
95617a3babSopenharmony_ci                              Return
96617a3babSopenharmony_ci                              FunctionEnd
97617a3babSopenharmony_ci   10(func(au1;):      6(int) Function None 8
98617a3babSopenharmony_ci            9(c):      7(ptr) FunctionParameter
99617a3babSopenharmony_ci              11:             Label
100617a3babSopenharmony_ci              16:      6(int) AtomicIIncrement 9(c) 14 15
101617a3babSopenharmony_ci                              ReturnValue 16
102617a3babSopenharmony_ci                              FunctionEnd
103617a3babSopenharmony_ci      12(atoms():           2 Function None 3
104617a3babSopenharmony_ci              13:             Label
105617a3babSopenharmony_ci       37(origi):     36(ptr) Variable Function
106617a3babSopenharmony_ci       42(origu):     22(ptr) Variable Function
107617a3babSopenharmony_ci              41:     28(int) AtomicIAdd 39(atomi) 14 15 40
108617a3babSopenharmony_ci                              Store 37(origi) 41
109617a3babSopenharmony_ci              46:      6(int) Load 45(value)
110617a3babSopenharmony_ci              47:      6(int) AtomicAnd 44(atomu) 14 15 46
111617a3babSopenharmony_ci                              Store 42(origu) 47
112617a3babSopenharmony_ci              49:      6(int) AtomicOr 44(atomu) 14 15 48
113617a3babSopenharmony_ci                              Store 42(origu) 49
114617a3babSopenharmony_ci              50:      6(int) AtomicXor 44(atomu) 14 15 48
115617a3babSopenharmony_ci                              Store 42(origu) 50
116617a3babSopenharmony_ci              51:      6(int) Load 45(value)
117617a3babSopenharmony_ci              52:      6(int) AtomicUMin 44(atomu) 14 15 51
118617a3babSopenharmony_ci                              Store 42(origu) 52
119617a3babSopenharmony_ci              54:     28(int) AtomicSMax 39(atomi) 14 15 53
120617a3babSopenharmony_ci                              Store 37(origi) 54
121617a3babSopenharmony_ci              55:     28(int) Load 37(origi)
122617a3babSopenharmony_ci              56:     28(int) AtomicExchange 39(atomi) 14 15 55
123617a3babSopenharmony_ci                              Store 37(origi) 56
124617a3babSopenharmony_ci              58:      6(int) Load 45(value)
125617a3babSopenharmony_ci              59:      6(int) AtomicCompareExchange 44(atomu) 14 15 15 58 57
126617a3babSopenharmony_ci                              Store 42(origu) 59
127617a3babSopenharmony_ci              67:     66(ptr) AccessChain 64(result) 33 65
128617a3babSopenharmony_ci              68:     28(int) AtomicIAdd 67 14 15 33
129617a3babSopenharmony_ci                              Return
130617a3babSopenharmony_ci                              FunctionEnd
131