1617a3babSopenharmony_cispv.atomicInt64.comp
2617a3babSopenharmony_ci// Module Version 10000
3617a3babSopenharmony_ci// Generated by (magic number): 8000b
4617a3babSopenharmony_ci// Id's are bound by 149
5617a3babSopenharmony_ci
6617a3babSopenharmony_ci                              Capability Shader
7617a3babSopenharmony_ci                              Capability Int64
8617a3babSopenharmony_ci                              Capability Int64Atomics
9617a3babSopenharmony_ci               1:             ExtInstImport  "GLSL.std.450"
10617a3babSopenharmony_ci                              MemoryModel Logical GLSL450
11617a3babSopenharmony_ci                              EntryPoint GLCompute 4  "main"
12617a3babSopenharmony_ci                              ExecutionMode 4 LocalSize 16 16 1
13617a3babSopenharmony_ci                              Source GLSL 450
14617a3babSopenharmony_ci                              SourceExtension  "GL_ARB_gpu_shader_int64"
15617a3babSopenharmony_ci                              SourceExtension  "GL_NV_shader_atomic_int64"
16617a3babSopenharmony_ci                              Name 4  "main"
17617a3babSopenharmony_ci                              Name 8  "i64"
18617a3babSopenharmony_ci                              Name 12  "u64"
19617a3babSopenharmony_ci                              Name 14  "Buffer"
20617a3babSopenharmony_ci                              MemberName 14(Buffer) 0  "i64"
21617a3babSopenharmony_ci                              MemberName 14(Buffer) 1  "u64"
22617a3babSopenharmony_ci                              Name 16  "buf"
23617a3babSopenharmony_ci                              Name 84  "Struct"
24617a3babSopenharmony_ci                              MemberName 84(Struct) 0  "i64"
25617a3babSopenharmony_ci                              MemberName 84(Struct) 1  "u64"
26617a3babSopenharmony_ci                              Name 86  "s"
27617a3babSopenharmony_ci                              MemberDecorate 14(Buffer) 0 Offset 0
28617a3babSopenharmony_ci                              MemberDecorate 14(Buffer) 1 Offset 8
29617a3babSopenharmony_ci                              Decorate 14(Buffer) BufferBlock
30617a3babSopenharmony_ci                              Decorate 16(buf) DescriptorSet 0
31617a3babSopenharmony_ci                              Decorate 16(buf) Binding 0
32617a3babSopenharmony_ci                              Decorate 148 BuiltIn WorkgroupSize
33617a3babSopenharmony_ci               2:             TypeVoid
34617a3babSopenharmony_ci               3:             TypeFunction 2
35617a3babSopenharmony_ci               6:             TypeInt 64 1
36617a3babSopenharmony_ci               7:             TypePointer Function 6(int64_t)
37617a3babSopenharmony_ci               9:  6(int64_t) Constant 0 0
38617a3babSopenharmony_ci              10:             TypeInt 64 0
39617a3babSopenharmony_ci              11:             TypePointer Function 10(int64_t)
40617a3babSopenharmony_ci              13: 10(int64_t) Constant 0 0
41617a3babSopenharmony_ci      14(Buffer):             TypeStruct 6(int64_t) 10(int64_t)
42617a3babSopenharmony_ci              15:             TypePointer Uniform 14(Buffer)
43617a3babSopenharmony_ci         16(buf):     15(ptr) Variable Uniform
44617a3babSopenharmony_ci              17:             TypeInt 32 1
45617a3babSopenharmony_ci              18:     17(int) Constant 0
46617a3babSopenharmony_ci              19:             TypePointer Uniform 6(int64_t)
47617a3babSopenharmony_ci              21:  6(int64_t) Constant 4294967272 4294967295
48617a3babSopenharmony_ci              22:             TypeInt 32 0
49617a3babSopenharmony_ci              23:     22(int) Constant 1
50617a3babSopenharmony_ci              24:     22(int) Constant 0
51617a3babSopenharmony_ci              28:     17(int) Constant 1
52617a3babSopenharmony_ci              29:             TypePointer Uniform 10(int64_t)
53617a3babSopenharmony_ci              31: 10(int64_t) Constant 15 240
54617a3babSopenharmony_ci      84(Struct):             TypeStruct 6(int64_t) 10(int64_t)
55617a3babSopenharmony_ci              85:             TypePointer Workgroup 84(Struct)
56617a3babSopenharmony_ci           86(s):     85(ptr) Variable Workgroup
57617a3babSopenharmony_ci              87:             TypePointer Workgroup 6(int64_t)
58617a3babSopenharmony_ci              92:             TypePointer Workgroup 10(int64_t)
59617a3babSopenharmony_ci             146:             TypeVector 22(int) 3
60617a3babSopenharmony_ci             147:     22(int) Constant 16
61617a3babSopenharmony_ci             148:  146(ivec3) ConstantComposite 147 147 23
62617a3babSopenharmony_ci         4(main):           2 Function None 3
63617a3babSopenharmony_ci               5:             Label
64617a3babSopenharmony_ci          8(i64):      7(ptr) Variable Function
65617a3babSopenharmony_ci         12(u64):     11(ptr) Variable Function
66617a3babSopenharmony_ci                              Store 8(i64) 9
67617a3babSopenharmony_ci                              Store 12(u64) 13
68617a3babSopenharmony_ci              20:     19(ptr) AccessChain 16(buf) 18
69617a3babSopenharmony_ci              25:  6(int64_t) AtomicSMin 20 23 24 21
70617a3babSopenharmony_ci              26:  6(int64_t) Load 8(i64)
71617a3babSopenharmony_ci              27:  6(int64_t) IAdd 26 25
72617a3babSopenharmony_ci                              Store 8(i64) 27
73617a3babSopenharmony_ci              30:     29(ptr) AccessChain 16(buf) 28
74617a3babSopenharmony_ci              32: 10(int64_t) AtomicUMin 30 23 24 31
75617a3babSopenharmony_ci              33: 10(int64_t) Load 12(u64)
76617a3babSopenharmony_ci              34: 10(int64_t) IAdd 33 32
77617a3babSopenharmony_ci                              Store 12(u64) 34
78617a3babSopenharmony_ci              35:     19(ptr) AccessChain 16(buf) 18
79617a3babSopenharmony_ci              36:  6(int64_t) AtomicSMax 35 23 24 21
80617a3babSopenharmony_ci              37:  6(int64_t) Load 8(i64)
81617a3babSopenharmony_ci              38:  6(int64_t) IAdd 37 36
82617a3babSopenharmony_ci                              Store 8(i64) 38
83617a3babSopenharmony_ci              39:     29(ptr) AccessChain 16(buf) 28
84617a3babSopenharmony_ci              40: 10(int64_t) AtomicUMax 39 23 24 31
85617a3babSopenharmony_ci              41: 10(int64_t) Load 12(u64)
86617a3babSopenharmony_ci              42: 10(int64_t) IAdd 41 40
87617a3babSopenharmony_ci                              Store 12(u64) 42
88617a3babSopenharmony_ci              43:     19(ptr) AccessChain 16(buf) 18
89617a3babSopenharmony_ci              44:  6(int64_t) AtomicAnd 43 23 24 21
90617a3babSopenharmony_ci              45:  6(int64_t) Load 8(i64)
91617a3babSopenharmony_ci              46:  6(int64_t) IAdd 45 44
92617a3babSopenharmony_ci                              Store 8(i64) 46
93617a3babSopenharmony_ci              47:     29(ptr) AccessChain 16(buf) 28
94617a3babSopenharmony_ci              48: 10(int64_t) AtomicAnd 47 23 24 31
95617a3babSopenharmony_ci              49: 10(int64_t) Load 12(u64)
96617a3babSopenharmony_ci              50: 10(int64_t) IAdd 49 48
97617a3babSopenharmony_ci                              Store 12(u64) 50
98617a3babSopenharmony_ci              51:     19(ptr) AccessChain 16(buf) 18
99617a3babSopenharmony_ci              52:  6(int64_t) AtomicOr 51 23 24 21
100617a3babSopenharmony_ci              53:  6(int64_t) Load 8(i64)
101617a3babSopenharmony_ci              54:  6(int64_t) IAdd 53 52
102617a3babSopenharmony_ci                              Store 8(i64) 54
103617a3babSopenharmony_ci              55:     29(ptr) AccessChain 16(buf) 28
104617a3babSopenharmony_ci              56: 10(int64_t) AtomicOr 55 23 24 31
105617a3babSopenharmony_ci              57: 10(int64_t) Load 12(u64)
106617a3babSopenharmony_ci              58: 10(int64_t) IAdd 57 56
107617a3babSopenharmony_ci                              Store 12(u64) 58
108617a3babSopenharmony_ci              59:     19(ptr) AccessChain 16(buf) 18
109617a3babSopenharmony_ci              60:  6(int64_t) AtomicXor 59 23 24 21
110617a3babSopenharmony_ci              61:  6(int64_t) Load 8(i64)
111617a3babSopenharmony_ci              62:  6(int64_t) IAdd 61 60
112617a3babSopenharmony_ci                              Store 8(i64) 62
113617a3babSopenharmony_ci              63:     29(ptr) AccessChain 16(buf) 28
114617a3babSopenharmony_ci              64: 10(int64_t) AtomicXor 63 23 24 31
115617a3babSopenharmony_ci              65: 10(int64_t) Load 12(u64)
116617a3babSopenharmony_ci              66: 10(int64_t) IAdd 65 64
117617a3babSopenharmony_ci                              Store 12(u64) 66
118617a3babSopenharmony_ci              67:     19(ptr) AccessChain 16(buf) 18
119617a3babSopenharmony_ci              68:  6(int64_t) AtomicIAdd 67 23 24 21
120617a3babSopenharmony_ci              69:  6(int64_t) Load 8(i64)
121617a3babSopenharmony_ci              70:  6(int64_t) IAdd 69 68
122617a3babSopenharmony_ci                              Store 8(i64) 70
123617a3babSopenharmony_ci              71:     19(ptr) AccessChain 16(buf) 18
124617a3babSopenharmony_ci              72:  6(int64_t) AtomicExchange 71 23 24 21
125617a3babSopenharmony_ci              73:  6(int64_t) Load 8(i64)
126617a3babSopenharmony_ci              74:  6(int64_t) IAdd 73 72
127617a3babSopenharmony_ci                              Store 8(i64) 74
128617a3babSopenharmony_ci              75:     19(ptr) AccessChain 16(buf) 18
129617a3babSopenharmony_ci              76:  6(int64_t) Load 8(i64)
130617a3babSopenharmony_ci              77:  6(int64_t) AtomicCompareExchange 75 23 24 24 76 21
131617a3babSopenharmony_ci              78:  6(int64_t) Load 8(i64)
132617a3babSopenharmony_ci              79:  6(int64_t) IAdd 78 77
133617a3babSopenharmony_ci                              Store 8(i64) 79
134617a3babSopenharmony_ci              80:  6(int64_t) Load 8(i64)
135617a3babSopenharmony_ci              81:     19(ptr) AccessChain 16(buf) 18
136617a3babSopenharmony_ci                              Store 81 80
137617a3babSopenharmony_ci              82: 10(int64_t) Load 12(u64)
138617a3babSopenharmony_ci              83:     29(ptr) AccessChain 16(buf) 28
139617a3babSopenharmony_ci                              Store 83 82
140617a3babSopenharmony_ci                              Store 8(i64) 9
141617a3babSopenharmony_ci                              Store 12(u64) 13
142617a3babSopenharmony_ci              88:     87(ptr) AccessChain 86(s) 18
143617a3babSopenharmony_ci              89:  6(int64_t) AtomicSMin 88 23 24 21
144617a3babSopenharmony_ci              90:  6(int64_t) Load 8(i64)
145617a3babSopenharmony_ci              91:  6(int64_t) IAdd 90 89
146617a3babSopenharmony_ci                              Store 8(i64) 91
147617a3babSopenharmony_ci              93:     92(ptr) AccessChain 86(s) 28
148617a3babSopenharmony_ci              94: 10(int64_t) AtomicUMin 93 23 24 31
149617a3babSopenharmony_ci              95: 10(int64_t) Load 12(u64)
150617a3babSopenharmony_ci              96: 10(int64_t) IAdd 95 94
151617a3babSopenharmony_ci                              Store 12(u64) 96
152617a3babSopenharmony_ci              97:     87(ptr) AccessChain 86(s) 18
153617a3babSopenharmony_ci              98:  6(int64_t) AtomicSMax 97 23 24 21
154617a3babSopenharmony_ci              99:  6(int64_t) Load 8(i64)
155617a3babSopenharmony_ci             100:  6(int64_t) IAdd 99 98
156617a3babSopenharmony_ci                              Store 8(i64) 100
157617a3babSopenharmony_ci             101:     92(ptr) AccessChain 86(s) 28
158617a3babSopenharmony_ci             102: 10(int64_t) AtomicUMax 101 23 24 31
159617a3babSopenharmony_ci             103: 10(int64_t) Load 12(u64)
160617a3babSopenharmony_ci             104: 10(int64_t) IAdd 103 102
161617a3babSopenharmony_ci                              Store 12(u64) 104
162617a3babSopenharmony_ci             105:     87(ptr) AccessChain 86(s) 18
163617a3babSopenharmony_ci             106:  6(int64_t) AtomicAnd 105 23 24 21
164617a3babSopenharmony_ci             107:  6(int64_t) Load 8(i64)
165617a3babSopenharmony_ci             108:  6(int64_t) IAdd 107 106
166617a3babSopenharmony_ci                              Store 8(i64) 108
167617a3babSopenharmony_ci             109:     92(ptr) AccessChain 86(s) 28
168617a3babSopenharmony_ci             110: 10(int64_t) AtomicAnd 109 23 24 31
169617a3babSopenharmony_ci             111: 10(int64_t) Load 12(u64)
170617a3babSopenharmony_ci             112: 10(int64_t) IAdd 111 110
171617a3babSopenharmony_ci                              Store 12(u64) 112
172617a3babSopenharmony_ci             113:     87(ptr) AccessChain 86(s) 18
173617a3babSopenharmony_ci             114:  6(int64_t) AtomicOr 113 23 24 21
174617a3babSopenharmony_ci             115:  6(int64_t) Load 8(i64)
175617a3babSopenharmony_ci             116:  6(int64_t) IAdd 115 114
176617a3babSopenharmony_ci                              Store 8(i64) 116
177617a3babSopenharmony_ci             117:     92(ptr) AccessChain 86(s) 28
178617a3babSopenharmony_ci             118: 10(int64_t) AtomicOr 117 23 24 31
179617a3babSopenharmony_ci             119: 10(int64_t) Load 12(u64)
180617a3babSopenharmony_ci             120: 10(int64_t) IAdd 119 118
181617a3babSopenharmony_ci                              Store 12(u64) 120
182617a3babSopenharmony_ci             121:     87(ptr) AccessChain 86(s) 18
183617a3babSopenharmony_ci             122:  6(int64_t) AtomicXor 121 23 24 21
184617a3babSopenharmony_ci             123:  6(int64_t) Load 8(i64)
185617a3babSopenharmony_ci             124:  6(int64_t) IAdd 123 122
186617a3babSopenharmony_ci                              Store 8(i64) 124
187617a3babSopenharmony_ci             125:     92(ptr) AccessChain 86(s) 28
188617a3babSopenharmony_ci             126: 10(int64_t) AtomicXor 125 23 24 31
189617a3babSopenharmony_ci             127: 10(int64_t) Load 12(u64)
190617a3babSopenharmony_ci             128: 10(int64_t) IAdd 127 126
191617a3babSopenharmony_ci                              Store 12(u64) 128
192617a3babSopenharmony_ci             129:     87(ptr) AccessChain 86(s) 18
193617a3babSopenharmony_ci             130:  6(int64_t) AtomicIAdd 129 23 24 21
194617a3babSopenharmony_ci             131:  6(int64_t) Load 8(i64)
195617a3babSopenharmony_ci             132:  6(int64_t) IAdd 131 130
196617a3babSopenharmony_ci                              Store 8(i64) 132
197617a3babSopenharmony_ci             133:     87(ptr) AccessChain 86(s) 18
198617a3babSopenharmony_ci             134:  6(int64_t) AtomicExchange 133 23 24 21
199617a3babSopenharmony_ci             135:  6(int64_t) Load 8(i64)
200617a3babSopenharmony_ci             136:  6(int64_t) IAdd 135 134
201617a3babSopenharmony_ci                              Store 8(i64) 136
202617a3babSopenharmony_ci             137:     87(ptr) AccessChain 86(s) 18
203617a3babSopenharmony_ci             138:  6(int64_t) Load 8(i64)
204617a3babSopenharmony_ci             139:  6(int64_t) AtomicCompareExchange 137 23 24 24 138 21
205617a3babSopenharmony_ci             140:  6(int64_t) Load 8(i64)
206617a3babSopenharmony_ci             141:  6(int64_t) IAdd 140 139
207617a3babSopenharmony_ci                              Store 8(i64) 141
208617a3babSopenharmony_ci             142:  6(int64_t) Load 8(i64)
209617a3babSopenharmony_ci             143:     87(ptr) AccessChain 86(s) 18
210617a3babSopenharmony_ci                              Store 143 142
211617a3babSopenharmony_ci             144: 10(int64_t) Load 12(u64)
212617a3babSopenharmony_ci             145:     92(ptr) AccessChain 86(s) 28
213617a3babSopenharmony_ci                              Store 145 144
214617a3babSopenharmony_ci                              Return
215617a3babSopenharmony_ci                              FunctionEnd
216