1spv.atomicInt64.comp 2// Module Version 10000 3// Generated by (magic number): 80007 4// Id's are bound by 149 5 6 Capability Shader 7 Capability Int64 8 Capability Int64Atomics 9 1: ExtInstImport "GLSL.std.450" 10 MemoryModel Logical GLSL450 11 EntryPoint GLCompute 4 "main" 12 ExecutionMode 4 LocalSize 16 16 1 13 Source GLSL 450 14 SourceExtension "GL_ARB_gpu_shader_int64" 15 SourceExtension "GL_NV_shader_atomic_int64" 16 Name 4 "main" 17 Name 8 "i64" 18 Name 12 "u64" 19 Name 14 "Buffer" 20 MemberName 14(Buffer) 0 "i64" 21 MemberName 14(Buffer) 1 "u64" 22 Name 16 "buf" 23 Name 84 "Struct" 24 MemberName 84(Struct) 0 "i64" 25 MemberName 84(Struct) 1 "u64" 26 Name 86 "s" 27 MemberDecorate 14(Buffer) 0 Offset 0 28 MemberDecorate 14(Buffer) 1 Offset 8 29 Decorate 14(Buffer) BufferBlock 30 Decorate 16(buf) DescriptorSet 0 31 Decorate 16(buf) Binding 0 32 Decorate 148 BuiltIn WorkgroupSize 33 2: TypeVoid 34 3: TypeFunction 2 35 6: TypeInt 64 1 36 7: TypePointer Function 6(int64_t) 37 9: 6(int64_t) Constant 0 0 38 10: TypeInt 64 0 39 11: TypePointer Function 10(int64_t) 40 13: 10(int64_t) Constant 0 0 41 14(Buffer): TypeStruct 6(int64_t) 10(int64_t) 42 15: TypePointer Uniform 14(Buffer) 43 16(buf): 15(ptr) Variable Uniform 44 17: TypeInt 32 1 45 18: 17(int) Constant 0 46 19: TypePointer Uniform 6(int64_t) 47 21: 6(int64_t) Constant 4294967272 4294967295 48 22: TypeInt 32 0 49 23: 22(int) Constant 1 50 24: 22(int) Constant 0 51 28: 17(int) Constant 1 52 29: TypePointer Uniform 10(int64_t) 53 31: 10(int64_t) Constant 15 240 54 84(Struct): TypeStruct 6(int64_t) 10(int64_t) 55 85: TypePointer Workgroup 84(Struct) 56 86(s): 85(ptr) Variable Workgroup 57 87: TypePointer Workgroup 6(int64_t) 58 92: TypePointer Workgroup 10(int64_t) 59 146: TypeVector 22(int) 3 60 147: 22(int) Constant 16 61 148: 146(ivec3) ConstantComposite 147 147 23 62 4(main): 2 Function None 3 63 5: Label 64 8(i64): 7(ptr) Variable Function 65 12(u64): 11(ptr) Variable Function 66 Store 8(i64) 9 67 Store 12(u64) 13 68 20: 19(ptr) AccessChain 16(buf) 18 69 25: 6(int64_t) AtomicSMin 20 23 24 21 70 26: 6(int64_t) Load 8(i64) 71 27: 6(int64_t) IAdd 26 25 72 Store 8(i64) 27 73 30: 29(ptr) AccessChain 16(buf) 28 74 32: 10(int64_t) AtomicUMin 30 23 24 31 75 33: 10(int64_t) Load 12(u64) 76 34: 10(int64_t) IAdd 33 32 77 Store 12(u64) 34 78 35: 19(ptr) AccessChain 16(buf) 18 79 36: 6(int64_t) AtomicSMax 35 23 24 21 80 37: 6(int64_t) Load 8(i64) 81 38: 6(int64_t) IAdd 37 36 82 Store 8(i64) 38 83 39: 29(ptr) AccessChain 16(buf) 28 84 40: 10(int64_t) AtomicUMax 39 23 24 31 85 41: 10(int64_t) Load 12(u64) 86 42: 10(int64_t) IAdd 41 40 87 Store 12(u64) 42 88 43: 19(ptr) AccessChain 16(buf) 18 89 44: 6(int64_t) AtomicAnd 43 23 24 21 90 45: 6(int64_t) Load 8(i64) 91 46: 6(int64_t) IAdd 45 44 92 Store 8(i64) 46 93 47: 29(ptr) AccessChain 16(buf) 28 94 48: 10(int64_t) AtomicAnd 47 23 24 31 95 49: 10(int64_t) Load 12(u64) 96 50: 10(int64_t) IAdd 49 48 97 Store 12(u64) 50 98 51: 19(ptr) AccessChain 16(buf) 18 99 52: 6(int64_t) AtomicOr 51 23 24 21 100 53: 6(int64_t) Load 8(i64) 101 54: 6(int64_t) IAdd 53 52 102 Store 8(i64) 54 103 55: 29(ptr) AccessChain 16(buf) 28 104 56: 10(int64_t) AtomicOr 55 23 24 31 105 57: 10(int64_t) Load 12(u64) 106 58: 10(int64_t) IAdd 57 56 107 Store 12(u64) 58 108 59: 19(ptr) AccessChain 16(buf) 18 109 60: 6(int64_t) AtomicXor 59 23 24 21 110 61: 6(int64_t) Load 8(i64) 111 62: 6(int64_t) IAdd 61 60 112 Store 8(i64) 62 113 63: 29(ptr) AccessChain 16(buf) 28 114 64: 10(int64_t) AtomicXor 63 23 24 31 115 65: 10(int64_t) Load 12(u64) 116 66: 10(int64_t) IAdd 65 64 117 Store 12(u64) 66 118 67: 19(ptr) AccessChain 16(buf) 18 119 68: 6(int64_t) AtomicIAdd 67 23 24 21 120 69: 6(int64_t) Load 8(i64) 121 70: 6(int64_t) IAdd 69 68 122 Store 8(i64) 70 123 71: 19(ptr) AccessChain 16(buf) 18 124 72: 6(int64_t) AtomicExchange 71 23 24 21 125 73: 6(int64_t) Load 8(i64) 126 74: 6(int64_t) IAdd 73 72 127 Store 8(i64) 74 128 75: 19(ptr) AccessChain 16(buf) 18 129 76: 6(int64_t) Load 8(i64) 130 77: 6(int64_t) AtomicCompareExchange 75 23 24 24 76 21 131 78: 6(int64_t) Load 8(i64) 132 79: 6(int64_t) IAdd 78 77 133 Store 8(i64) 79 134 80: 6(int64_t) Load 8(i64) 135 81: 19(ptr) AccessChain 16(buf) 18 136 Store 81 80 137 82: 10(int64_t) Load 12(u64) 138 83: 29(ptr) AccessChain 16(buf) 28 139 Store 83 82 140 Store 8(i64) 9 141 Store 12(u64) 13 142 88: 87(ptr) AccessChain 86(s) 18 143 89: 6(int64_t) AtomicSMin 88 23 24 21 144 90: 6(int64_t) Load 8(i64) 145 91: 6(int64_t) IAdd 90 89 146 Store 8(i64) 91 147 93: 92(ptr) AccessChain 86(s) 28 148 94: 10(int64_t) AtomicUMin 93 23 24 31 149 95: 10(int64_t) Load 12(u64) 150 96: 10(int64_t) IAdd 95 94 151 Store 12(u64) 96 152 97: 87(ptr) AccessChain 86(s) 18 153 98: 6(int64_t) AtomicSMax 97 23 24 21 154 99: 6(int64_t) Load 8(i64) 155 100: 6(int64_t) IAdd 99 98 156 Store 8(i64) 100 157 101: 92(ptr) AccessChain 86(s) 28 158 102: 10(int64_t) AtomicUMax 101 23 24 31 159 103: 10(int64_t) Load 12(u64) 160 104: 10(int64_t) IAdd 103 102 161 Store 12(u64) 104 162 105: 87(ptr) AccessChain 86(s) 18 163 106: 6(int64_t) AtomicAnd 105 23 24 21 164 107: 6(int64_t) Load 8(i64) 165 108: 6(int64_t) IAdd 107 106 166 Store 8(i64) 108 167 109: 92(ptr) AccessChain 86(s) 28 168 110: 10(int64_t) AtomicAnd 109 23 24 31 169 111: 10(int64_t) Load 12(u64) 170 112: 10(int64_t) IAdd 111 110 171 Store 12(u64) 112 172 113: 87(ptr) AccessChain 86(s) 18 173 114: 6(int64_t) AtomicOr 113 23 24 21 174 115: 6(int64_t) Load 8(i64) 175 116: 6(int64_t) IAdd 115 114 176 Store 8(i64) 116 177 117: 92(ptr) AccessChain 86(s) 28 178 118: 10(int64_t) AtomicOr 117 23 24 31 179 119: 10(int64_t) Load 12(u64) 180 120: 10(int64_t) IAdd 119 118 181 Store 12(u64) 120 182 121: 87(ptr) AccessChain 86(s) 18 183 122: 6(int64_t) AtomicXor 121 23 24 21 184 123: 6(int64_t) Load 8(i64) 185 124: 6(int64_t) IAdd 123 122 186 Store 8(i64) 124 187 125: 92(ptr) AccessChain 86(s) 28 188 126: 10(int64_t) AtomicXor 125 23 24 31 189 127: 10(int64_t) Load 12(u64) 190 128: 10(int64_t) IAdd 127 126 191 Store 12(u64) 128 192 129: 87(ptr) AccessChain 86(s) 18 193 130: 6(int64_t) AtomicIAdd 129 23 24 21 194 131: 6(int64_t) Load 8(i64) 195 132: 6(int64_t) IAdd 131 130 196 Store 8(i64) 132 197 133: 87(ptr) AccessChain 86(s) 18 198 134: 6(int64_t) AtomicExchange 133 23 24 21 199 135: 6(int64_t) Load 8(i64) 200 136: 6(int64_t) IAdd 135 134 201 Store 8(i64) 136 202 137: 87(ptr) AccessChain 86(s) 18 203 138: 6(int64_t) Load 8(i64) 204 139: 6(int64_t) AtomicCompareExchange 137 23 24 24 138 21 205 140: 6(int64_t) Load 8(i64) 206 141: 6(int64_t) IAdd 140 139 207 Store 8(i64) 141 208 142: 6(int64_t) Load 8(i64) 209 143: 87(ptr) AccessChain 86(s) 18 210 Store 143 142 211 144: 10(int64_t) Load 12(u64) 212 145: 92(ptr) AccessChain 86(s) 28 213 Store 145 144 214 Return 215 FunctionEnd 216