2ee4978fe603e9a64ceddfaba5346239a36e399e
[platform/upstream/glslang.git] / Test / baseResults / spv.atomic.comp.out
1 spv.atomic.comp
2 Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
3
4
5 Linked compute stage:
6
7
8 TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
9 // Module Version 10000
10 // Generated by (magic number): 80001
11 // Id's are bound by 74
12
13                               Capability Shader
14                1:             ExtInstImport  "GLSL.std.450"
15                               MemoryModel Logical GLSL450
16                               EntryPoint GLCompute 4  "main"
17                               ExecutionMode 4 LocalSize 1 1 1
18                               Source ESSL 310
19                               Name 4  "main"
20                               Name 10  "func(au1;"
21                               Name 9  "c"
22                               Name 12  "atoms("
23                               Name 20  "counter"
24                               Name 21  "param"
25                               Name 24  "val"
26                               Name 28  "countArr"
27                               Name 35  "origi"
28                               Name 37  "atomi"
29                               Name 40  "origu"
30                               Name 42  "atomu"
31                               Name 44  "value"
32                               Name 61  "dataSSB"
33                               MemberName 61(dataSSB) 0  "f"
34                               MemberName 61(dataSSB) 1  "n_frames_rendered"
35                               Name 63  "result"
36                               Name 71  "arrX"
37                               Name 72  "arrY"
38                               Name 73  "arrZ"
39                               Decorate 20(counter) Binding 0
40                               Decorate 28(countArr) Binding 0
41                               MemberDecorate 61(dataSSB) 0 Offset 0
42                               MemberDecorate 61(dataSSB) 1 Offset 16
43                               Decorate 61(dataSSB) BufferBlock
44                               Decorate 63(result) Binding 0
45                2:             TypeVoid
46                3:             TypeFunction 2
47                6:             TypeInt 32 0
48                7:             TypePointer Function 6(int)
49                8:             TypeFunction 6(int) 7(ptr)
50               14:      6(int) Constant 1
51               15:      6(int) Constant 0
52               18:      6(int) Constant 1024
53               19:             TypePointer AtomicCounter 6(int)
54      20(counter):     19(ptr) Variable AtomicCounter
55               25:      6(int) Constant 4
56               26:             TypeArray 6(int) 25
57               27:             TypePointer AtomicCounter 26
58     28(countArr):     27(ptr) Variable AtomicCounter
59               29:             TypeInt 32 1
60               30:     29(int) Constant 2
61               34:             TypePointer Function 29(int)
62               36:             TypePointer Workgroup 29(int)
63        37(atomi):     36(ptr) Variable Workgroup
64               38:     29(int) Constant 3
65               41:             TypePointer Workgroup 6(int)
66        42(atomu):     41(ptr) Variable Workgroup
67               43:             TypePointer UniformConstant 6(int)
68        44(value):     43(ptr) Variable UniformConstant
69               47:      6(int) Constant 7
70               52:     29(int) Constant 7
71               56:      6(int) Constant 10
72               59:             TypeFloat 32
73               60:             TypeVector 29(int) 4
74      61(dataSSB):             TypeStruct 59(float) 60(ivec4)
75               62:             TypePointer Uniform 61(dataSSB)
76       63(result):     62(ptr) Variable Uniform
77               64:     29(int) Constant 1
78               65:      6(int) Constant 2
79               66:             TypePointer Uniform 29(int)
80               69:             TypeArray 29(int) 14
81               70:             TypePointer Private 69
82         71(arrX):     70(ptr) Variable Private
83         72(arrY):     70(ptr) Variable Private
84         73(arrZ):     70(ptr) Variable Private
85          4(main):           2 Function None 3
86                5:             Label
87        21(param):      7(ptr) Variable Function
88          24(val):      7(ptr) Variable Function
89                               MemoryBarrier 14 18
90               22:      6(int) Load 20(counter)
91                               Store 21(param) 22
92               23:      6(int) FunctionCall 10(func(au1;) 21(param)
93               31:     19(ptr) AccessChain 28(countArr) 30
94               32:      6(int) AtomicLoad 31 14 15
95                               Store 24(val) 32
96               33:      6(int) AtomicIDecrement 20(counter) 14 15
97                               Return
98                               FunctionEnd
99    10(func(au1;):      6(int) Function None 8
100             9(c):      7(ptr) FunctionParameter
101               11:             Label
102               16:      6(int) AtomicIIncrement 9(c) 14 15
103                               ReturnValue 16
104                               FunctionEnd
105       12(atoms():           2 Function None 3
106               13:             Label
107        35(origi):     34(ptr) Variable Function
108        40(origu):      7(ptr) Variable Function
109               39:     29(int) AtomicIAdd 37(atomi) 14 15 38
110                               Store 35(origi) 39
111               45:      6(int) Load 44(value)
112               46:      6(int) AtomicAnd 42(atomu) 14 15 45
113                               Store 40(origu) 46
114               48:      6(int) AtomicOr 42(atomu) 14 15 47
115                               Store 40(origu) 48
116               49:      6(int) AtomicXor 42(atomu) 14 15 47
117                               Store 40(origu) 49
118               50:      6(int) Load 44(value)
119               51:      6(int) AtomicUMin 42(atomu) 14 15 50
120                               Store 40(origu) 51
121               53:     29(int) AtomicSMax 37(atomi) 14 15 52
122                               Store 35(origi) 53
123               54:     29(int) Load 35(origi)
124               55:     29(int) AtomicExchange 37(atomi) 14 15 54
125                               Store 35(origi) 55
126               57:      6(int) Load 44(value)
127               58:      6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56
128                               Store 40(origu) 58
129               67:     66(ptr) AccessChain 63(result) 64 65
130               68:     29(int) AtomicIAdd 67 14 15 64
131                               Return
132                               FunctionEnd