mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
216 lines
10 KiB
Plaintext
216 lines
10 KiB
Plaintext
spv.atomicInt64.comp
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 149
|
|
|
|
Capability Shader
|
|
Capability Int64
|
|
Capability Int64Atomics
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint GLCompute 4 "main"
|
|
ExecutionMode 4 LocalSize 16 16 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_ARB_gpu_shader_int64"
|
|
SourceExtension "GL_NV_shader_atomic_int64"
|
|
Name 4 "main"
|
|
Name 8 "i64"
|
|
Name 12 "u64"
|
|
Name 14 "Buffer"
|
|
MemberName 14(Buffer) 0 "i64"
|
|
MemberName 14(Buffer) 1 "u64"
|
|
Name 16 "buf"
|
|
Name 84 "Struct"
|
|
MemberName 84(Struct) 0 "i64"
|
|
MemberName 84(Struct) 1 "u64"
|
|
Name 86 "s"
|
|
MemberDecorate 14(Buffer) 0 Offset 0
|
|
MemberDecorate 14(Buffer) 1 Offset 8
|
|
Decorate 14(Buffer) BufferBlock
|
|
Decorate 16(buf) DescriptorSet 0
|
|
Decorate 16(buf) Binding 0
|
|
Decorate 148 BuiltIn WorkgroupSize
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 64 1
|
|
7: TypePointer Function 6(int64_t)
|
|
9: 6(int64_t) Constant 0 0
|
|
10: TypeInt 64 0
|
|
11: TypePointer Function 10(int64_t)
|
|
13: 10(int64_t) Constant 0 0
|
|
14(Buffer): TypeStruct 6(int64_t) 10(int64_t)
|
|
15: TypePointer Uniform 14(Buffer)
|
|
16(buf): 15(ptr) Variable Uniform
|
|
17: TypeInt 32 1
|
|
18: 17(int) Constant 0
|
|
19: TypePointer Uniform 6(int64_t)
|
|
21: 6(int64_t) Constant 4294967272 4294967295
|
|
22: TypeInt 32 0
|
|
23: 22(int) Constant 1
|
|
24: 22(int) Constant 0
|
|
28: 17(int) Constant 1
|
|
29: TypePointer Uniform 10(int64_t)
|
|
31: 10(int64_t) Constant 15 240
|
|
84(Struct): TypeStruct 6(int64_t) 10(int64_t)
|
|
85: TypePointer Workgroup 84(Struct)
|
|
86(s): 85(ptr) Variable Workgroup
|
|
87: TypePointer Workgroup 6(int64_t)
|
|
92: TypePointer Workgroup 10(int64_t)
|
|
146: TypeVector 22(int) 3
|
|
147: 22(int) Constant 16
|
|
148: 146(ivec3) ConstantComposite 147 147 23
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(i64): 7(ptr) Variable Function
|
|
12(u64): 11(ptr) Variable Function
|
|
Store 8(i64) 9
|
|
Store 12(u64) 13
|
|
20: 19(ptr) AccessChain 16(buf) 18
|
|
25: 6(int64_t) AtomicSMin 20 23 24 21
|
|
26: 6(int64_t) Load 8(i64)
|
|
27: 6(int64_t) IAdd 26 25
|
|
Store 8(i64) 27
|
|
30: 29(ptr) AccessChain 16(buf) 28
|
|
32: 10(int64_t) AtomicUMin 30 23 24 31
|
|
33: 10(int64_t) Load 12(u64)
|
|
34: 10(int64_t) IAdd 33 32
|
|
Store 12(u64) 34
|
|
35: 19(ptr) AccessChain 16(buf) 18
|
|
36: 6(int64_t) AtomicSMax 35 23 24 21
|
|
37: 6(int64_t) Load 8(i64)
|
|
38: 6(int64_t) IAdd 37 36
|
|
Store 8(i64) 38
|
|
39: 29(ptr) AccessChain 16(buf) 28
|
|
40: 10(int64_t) AtomicUMax 39 23 24 31
|
|
41: 10(int64_t) Load 12(u64)
|
|
42: 10(int64_t) IAdd 41 40
|
|
Store 12(u64) 42
|
|
43: 19(ptr) AccessChain 16(buf) 18
|
|
44: 6(int64_t) AtomicAnd 43 23 24 21
|
|
45: 6(int64_t) Load 8(i64)
|
|
46: 6(int64_t) IAdd 45 44
|
|
Store 8(i64) 46
|
|
47: 29(ptr) AccessChain 16(buf) 28
|
|
48: 10(int64_t) AtomicAnd 47 23 24 31
|
|
49: 10(int64_t) Load 12(u64)
|
|
50: 10(int64_t) IAdd 49 48
|
|
Store 12(u64) 50
|
|
51: 19(ptr) AccessChain 16(buf) 18
|
|
52: 6(int64_t) AtomicOr 51 23 24 21
|
|
53: 6(int64_t) Load 8(i64)
|
|
54: 6(int64_t) IAdd 53 52
|
|
Store 8(i64) 54
|
|
55: 29(ptr) AccessChain 16(buf) 28
|
|
56: 10(int64_t) AtomicOr 55 23 24 31
|
|
57: 10(int64_t) Load 12(u64)
|
|
58: 10(int64_t) IAdd 57 56
|
|
Store 12(u64) 58
|
|
59: 19(ptr) AccessChain 16(buf) 18
|
|
60: 6(int64_t) AtomicXor 59 23 24 21
|
|
61: 6(int64_t) Load 8(i64)
|
|
62: 6(int64_t) IAdd 61 60
|
|
Store 8(i64) 62
|
|
63: 29(ptr) AccessChain 16(buf) 28
|
|
64: 10(int64_t) AtomicXor 63 23 24 31
|
|
65: 10(int64_t) Load 12(u64)
|
|
66: 10(int64_t) IAdd 65 64
|
|
Store 12(u64) 66
|
|
67: 19(ptr) AccessChain 16(buf) 18
|
|
68: 6(int64_t) AtomicIAdd 67 23 24 21
|
|
69: 6(int64_t) Load 8(i64)
|
|
70: 6(int64_t) IAdd 69 68
|
|
Store 8(i64) 70
|
|
71: 19(ptr) AccessChain 16(buf) 18
|
|
72: 6(int64_t) AtomicExchange 71 23 24 21
|
|
73: 6(int64_t) Load 8(i64)
|
|
74: 6(int64_t) IAdd 73 72
|
|
Store 8(i64) 74
|
|
75: 19(ptr) AccessChain 16(buf) 18
|
|
76: 6(int64_t) Load 8(i64)
|
|
77: 6(int64_t) AtomicCompareExchange 75 23 24 24 76 21
|
|
78: 6(int64_t) Load 8(i64)
|
|
79: 6(int64_t) IAdd 78 77
|
|
Store 8(i64) 79
|
|
80: 6(int64_t) Load 8(i64)
|
|
81: 19(ptr) AccessChain 16(buf) 18
|
|
Store 81 80
|
|
82: 10(int64_t) Load 12(u64)
|
|
83: 29(ptr) AccessChain 16(buf) 28
|
|
Store 83 82
|
|
Store 8(i64) 9
|
|
Store 12(u64) 13
|
|
88: 87(ptr) AccessChain 86(s) 18
|
|
89: 6(int64_t) AtomicSMin 88 23 24 21
|
|
90: 6(int64_t) Load 8(i64)
|
|
91: 6(int64_t) IAdd 90 89
|
|
Store 8(i64) 91
|
|
93: 92(ptr) AccessChain 86(s) 28
|
|
94: 10(int64_t) AtomicUMin 93 23 24 31
|
|
95: 10(int64_t) Load 12(u64)
|
|
96: 10(int64_t) IAdd 95 94
|
|
Store 12(u64) 96
|
|
97: 87(ptr) AccessChain 86(s) 18
|
|
98: 6(int64_t) AtomicSMax 97 23 24 21
|
|
99: 6(int64_t) Load 8(i64)
|
|
100: 6(int64_t) IAdd 99 98
|
|
Store 8(i64) 100
|
|
101: 92(ptr) AccessChain 86(s) 28
|
|
102: 10(int64_t) AtomicUMax 101 23 24 31
|
|
103: 10(int64_t) Load 12(u64)
|
|
104: 10(int64_t) IAdd 103 102
|
|
Store 12(u64) 104
|
|
105: 87(ptr) AccessChain 86(s) 18
|
|
106: 6(int64_t) AtomicAnd 105 23 24 21
|
|
107: 6(int64_t) Load 8(i64)
|
|
108: 6(int64_t) IAdd 107 106
|
|
Store 8(i64) 108
|
|
109: 92(ptr) AccessChain 86(s) 28
|
|
110: 10(int64_t) AtomicAnd 109 23 24 31
|
|
111: 10(int64_t) Load 12(u64)
|
|
112: 10(int64_t) IAdd 111 110
|
|
Store 12(u64) 112
|
|
113: 87(ptr) AccessChain 86(s) 18
|
|
114: 6(int64_t) AtomicOr 113 23 24 21
|
|
115: 6(int64_t) Load 8(i64)
|
|
116: 6(int64_t) IAdd 115 114
|
|
Store 8(i64) 116
|
|
117: 92(ptr) AccessChain 86(s) 28
|
|
118: 10(int64_t) AtomicOr 117 23 24 31
|
|
119: 10(int64_t) Load 12(u64)
|
|
120: 10(int64_t) IAdd 119 118
|
|
Store 12(u64) 120
|
|
121: 87(ptr) AccessChain 86(s) 18
|
|
122: 6(int64_t) AtomicXor 121 23 24 21
|
|
123: 6(int64_t) Load 8(i64)
|
|
124: 6(int64_t) IAdd 123 122
|
|
Store 8(i64) 124
|
|
125: 92(ptr) AccessChain 86(s) 28
|
|
126: 10(int64_t) AtomicXor 125 23 24 31
|
|
127: 10(int64_t) Load 12(u64)
|
|
128: 10(int64_t) IAdd 127 126
|
|
Store 12(u64) 128
|
|
129: 87(ptr) AccessChain 86(s) 18
|
|
130: 6(int64_t) AtomicIAdd 129 23 24 21
|
|
131: 6(int64_t) Load 8(i64)
|
|
132: 6(int64_t) IAdd 131 130
|
|
Store 8(i64) 132
|
|
133: 87(ptr) AccessChain 86(s) 18
|
|
134: 6(int64_t) AtomicExchange 133 23 24 21
|
|
135: 6(int64_t) Load 8(i64)
|
|
136: 6(int64_t) IAdd 135 134
|
|
Store 8(i64) 136
|
|
137: 87(ptr) AccessChain 86(s) 18
|
|
138: 6(int64_t) Load 8(i64)
|
|
139: 6(int64_t) AtomicCompareExchange 137 23 24 24 138 21
|
|
140: 6(int64_t) Load 8(i64)
|
|
141: 6(int64_t) IAdd 140 139
|
|
Store 8(i64) 141
|
|
142: 6(int64_t) Load 8(i64)
|
|
143: 87(ptr) AccessChain 86(s) 18
|
|
Store 143 142
|
|
144: 10(int64_t) Load 12(u64)
|
|
145: 92(ptr) AccessChain 86(s) 28
|
|
Store 145 144
|
|
Return
|
|
FunctionEnd
|