1spv.subgroupExtendedTypesVote.comp 2// Module Version 10300 3// Generated by (magic number): 8000b 4// Id's are bound by 277 5 6 Capability Shader 7 Capability Float16 8 Capability Int64 9 Capability Int16 10 Capability Int8 11 Capability GroupNonUniform 12 Capability GroupNonUniformVote 13 Capability StorageUniformBufferBlock16 14 Capability StorageBuffer8BitAccess 15 Extension "SPV_KHR_8bit_storage" 16 1: ExtInstImport "GLSL.std.450" 17 MemoryModel Logical GLSL450 18 EntryPoint GLCompute 4 "main" 10 12 19 ExecutionMode 4 LocalSize 8 1 1 20 Source GLSL 450 21 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16" 22 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16" 23 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64" 24 SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8" 25 SourceExtension "GL_EXT_shader_subgroup_extended_types_float16" 26 SourceExtension "GL_EXT_shader_subgroup_extended_types_int16" 27 SourceExtension "GL_EXT_shader_subgroup_extended_types_int64" 28 SourceExtension "GL_EXT_shader_subgroup_extended_types_int8" 29 SourceExtension "GL_KHR_shader_subgroup_basic" 30 SourceExtension "GL_KHR_shader_subgroup_vote" 31 Name 4 "main" 32 Name 8 "invocation" 33 Name 10 "gl_SubgroupInvocationID" 34 Name 12 "gl_SubgroupSize" 35 Name 32 "Buffers" 36 MemberName 32(Buffers) 0 "i8" 37 MemberName 32(Buffers) 1 "u8" 38 MemberName 32(Buffers) 2 "i16" 39 MemberName 32(Buffers) 3 "u16" 40 MemberName 32(Buffers) 4 "i64" 41 MemberName 32(Buffers) 5 "u64" 42 MemberName 32(Buffers) 6 "f16" 43 MemberName 32(Buffers) 7 "r" 44 Name 35 "data" 45 Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision 46 Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId 47 Decorate 11 RelaxedPrecision 48 Decorate 12(gl_SubgroupSize) RelaxedPrecision 49 Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize 50 Decorate 13 RelaxedPrecision 51 Decorate 14 RelaxedPrecision 52 Decorate 16 RelaxedPrecision 53 MemberDecorate 32(Buffers) 0 Offset 0 54 MemberDecorate 32(Buffers) 1 Offset 4 55 MemberDecorate 32(Buffers) 2 Offset 8 56 MemberDecorate 32(Buffers) 3 Offset 16 57 MemberDecorate 32(Buffers) 4 Offset 32 58 MemberDecorate 32(Buffers) 5 Offset 64 59 MemberDecorate 32(Buffers) 6 Offset 96 60 MemberDecorate 32(Buffers) 7 Offset 104 61 Decorate 32(Buffers) Block 62 Decorate 35(data) DescriptorSet 0 63 Decorate 35(data) Binding 0 64 Decorate 276 BuiltIn WorkgroupSize 65 2: TypeVoid 66 3: TypeFunction 2 67 6: TypeInt 32 0 68 7: TypePointer Function 6(int) 69 9: TypePointer Input 6(int) 7010(gl_SubgroupInvocationID): 9(ptr) Variable Input 7112(gl_SubgroupSize): 9(ptr) Variable Input 72 15: 6(int) Constant 4 73 17: TypeInt 8 1 74 18: TypeVector 17(int8_t) 4 75 19: TypeInt 8 0 76 20: TypeVector 19(int8_t) 4 77 21: TypeInt 16 1 78 22: TypeVector 21(int16_t) 4 79 23: TypeInt 16 0 80 24: TypeVector 23(int16_t) 4 81 25: TypeInt 64 1 82 26: TypeVector 25(int64_t) 4 83 27: TypeInt 64 0 84 28: TypeVector 27(int64_t) 4 85 29: TypeFloat 16 86 30: TypeVector 29(float16_t) 4 87 31: TypeInt 32 1 88 32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int) 89 33: TypeArray 32(Buffers) 15 90 34: TypePointer StorageBuffer 33 91 35(data): 34(ptr) Variable StorageBuffer 92 37: 31(int) Constant 7 93 38: TypePointer StorageBuffer 31(int) 94 41: 31(int) Constant 0 95 42: TypeBool 96 44: 6(int) Constant 3 97 49: 6(int) Constant 0 98 50: TypePointer StorageBuffer 17(int8_t) 99 54: 31(int) Constant 1 100 58: TypeVector 17(int8_t) 2 101 59: TypePointer StorageBuffer 18(i8vec4) 102 67: 31(int) Constant 2 103 68: TypeVector 17(int8_t) 3 104 76: 31(int) Constant 3 105 83: TypePointer StorageBuffer 19(int8_t) 106 90: TypeVector 19(int8_t) 2 107 91: TypePointer StorageBuffer 20(i8vec4) 108 99: TypeVector 19(int8_t) 3 109 113: TypePointer StorageBuffer 21(int16_t) 110 120: TypeVector 21(int16_t) 2 111 121: TypePointer StorageBuffer 22(i16vec4) 112 129: TypeVector 21(int16_t) 3 113 143: TypePointer StorageBuffer 23(int16_t) 114 150: TypeVector 23(int16_t) 2 115 151: TypePointer StorageBuffer 24(i16vec4) 116 159: TypeVector 23(int16_t) 3 117 181: 31(int) Constant 4 118 182: TypePointer StorageBuffer 25(int64_t) 119 189: TypeVector 25(int64_t) 2 120 190: TypePointer StorageBuffer 26(i64vec4) 121 198: TypeVector 25(int64_t) 3 122 212: 31(int) Constant 5 123 213: TypePointer StorageBuffer 27(int64_t) 124 220: TypeVector 27(int64_t) 2 125 221: TypePointer StorageBuffer 28(i64vec4) 126 229: TypeVector 27(int64_t) 3 127 243: 31(int) Constant 6 128 244: TypePointer StorageBuffer 29(float16_t) 129 251: TypeVector 29(float16_t) 2 130 252: TypePointer StorageBuffer 30(f16vec4) 131 260: TypeVector 29(float16_t) 3 132 273: TypeVector 6(int) 3 133 274: 6(int) Constant 8 134 275: 6(int) Constant 1 135 276: 273(ivec3) ConstantComposite 274 275 275 136 4(main): 2 Function None 3 137 5: Label 138 8(invocation): 7(ptr) Variable Function 139 11: 6(int) Load 10(gl_SubgroupInvocationID) 140 13: 6(int) Load 12(gl_SubgroupSize) 141 14: 6(int) IAdd 11 13 142 16: 6(int) UMod 14 15 143 Store 8(invocation) 16 144 36: 6(int) Load 8(invocation) 145 39: 38(ptr) AccessChain 35(data) 36 37 146 40: 31(int) Load 39 147 43: 42(bool) SLessThan 40 41 148 45: 42(bool) GroupNonUniformAll 44 43 149 SelectionMerge 47 None 150 BranchConditional 45 46 172 151 46: Label 152 48: 6(int) Load 8(invocation) 153 51: 50(ptr) AccessChain 35(data) 41 41 49 154 52: 17(int8_t) Load 51 155 53: 42(bool) GroupNonUniformAllEqual 44 52 156 55: 31(int) Select 53 54 41 157 56: 38(ptr) AccessChain 35(data) 48 37 158 Store 56 55 159 57: 6(int) Load 8(invocation) 160 60: 59(ptr) AccessChain 35(data) 54 41 161 61: 18(i8vec4) Load 60 162 62: 58(i8vec2) VectorShuffle 61 61 0 1 163 63: 42(bool) GroupNonUniformAllEqual 44 62 164 64: 31(int) Select 63 54 41 165 65: 38(ptr) AccessChain 35(data) 57 37 166 Store 65 64 167 66: 6(int) Load 8(invocation) 168 69: 59(ptr) AccessChain 35(data) 67 41 169 70: 18(i8vec4) Load 69 170 71: 68(i8vec3) VectorShuffle 70 70 0 1 2 171 72: 42(bool) GroupNonUniformAllEqual 44 71 172 73: 31(int) Select 72 54 41 173 74: 38(ptr) AccessChain 35(data) 66 37 174 Store 74 73 175 75: 6(int) Load 8(invocation) 176 77: 59(ptr) AccessChain 35(data) 76 41 177 78: 18(i8vec4) Load 77 178 79: 42(bool) GroupNonUniformAllEqual 44 78 179 80: 31(int) Select 79 54 41 180 81: 38(ptr) AccessChain 35(data) 75 37 181 Store 81 80 182 82: 6(int) Load 8(invocation) 183 84: 83(ptr) AccessChain 35(data) 41 54 49 184 85: 19(int8_t) Load 84 185 86: 42(bool) GroupNonUniformAllEqual 44 85 186 87: 31(int) Select 86 54 41 187 88: 38(ptr) AccessChain 35(data) 82 37 188 Store 88 87 189 89: 6(int) Load 8(invocation) 190 92: 91(ptr) AccessChain 35(data) 54 54 191 93: 20(i8vec4) Load 92 192 94: 90(i8vec2) VectorShuffle 93 93 0 1 193 95: 42(bool) GroupNonUniformAllEqual 44 94 194 96: 31(int) Select 95 54 41 195 97: 38(ptr) AccessChain 35(data) 89 37 196 Store 97 96 197 98: 6(int) Load 8(invocation) 198 100: 91(ptr) AccessChain 35(data) 67 54 199 101: 20(i8vec4) Load 100 200 102: 99(i8vec3) VectorShuffle 101 101 0 1 2 201 103: 42(bool) GroupNonUniformAllEqual 44 102 202 104: 31(int) Select 103 54 41 203 105: 38(ptr) AccessChain 35(data) 98 37 204 Store 105 104 205 106: 6(int) Load 8(invocation) 206 107: 91(ptr) AccessChain 35(data) 76 54 207 108: 20(i8vec4) Load 107 208 109: 42(bool) GroupNonUniformAllEqual 44 108 209 110: 31(int) Select 109 54 41 210 111: 38(ptr) AccessChain 35(data) 106 37 211 Store 111 110 212 112: 6(int) Load 8(invocation) 213 114: 113(ptr) AccessChain 35(data) 41 67 49 214 115: 21(int16_t) Load 114 215 116: 42(bool) GroupNonUniformAllEqual 44 115 216 117: 31(int) Select 116 54 41 217 118: 38(ptr) AccessChain 35(data) 112 37 218 Store 118 117 219 119: 6(int) Load 8(invocation) 220 122: 121(ptr) AccessChain 35(data) 54 67 221 123: 22(i16vec4) Load 122 222 124:120(i16vec2) VectorShuffle 123 123 0 1 223 125: 42(bool) GroupNonUniformAllEqual 44 124 224 126: 31(int) Select 125 54 41 225 127: 38(ptr) AccessChain 35(data) 119 37 226 Store 127 126 227 128: 6(int) Load 8(invocation) 228 130: 121(ptr) AccessChain 35(data) 67 67 229 131: 22(i16vec4) Load 130 230 132:129(i16vec3) VectorShuffle 131 131 0 1 2 231 133: 42(bool) GroupNonUniformAllEqual 44 132 232 134: 31(int) Select 133 54 41 233 135: 38(ptr) AccessChain 35(data) 128 37 234 Store 135 134 235 136: 6(int) Load 8(invocation) 236 137: 121(ptr) AccessChain 35(data) 76 67 237 138: 22(i16vec4) Load 137 238 139: 42(bool) GroupNonUniformAllEqual 44 138 239 140: 31(int) Select 139 54 41 240 141: 38(ptr) AccessChain 35(data) 136 37 241 Store 141 140 242 142: 6(int) Load 8(invocation) 243 144: 143(ptr) AccessChain 35(data) 41 76 49 244 145: 23(int16_t) Load 144 245 146: 42(bool) GroupNonUniformAllEqual 44 145 246 147: 31(int) Select 146 54 41 247 148: 38(ptr) AccessChain 35(data) 142 37 248 Store 148 147 249 149: 6(int) Load 8(invocation) 250 152: 151(ptr) AccessChain 35(data) 54 76 251 153: 24(i16vec4) Load 152 252 154:150(i16vec2) VectorShuffle 153 153 0 1 253 155: 42(bool) GroupNonUniformAllEqual 44 154 254 156: 31(int) Select 155 54 41 255 157: 38(ptr) AccessChain 35(data) 149 37 256 Store 157 156 257 158: 6(int) Load 8(invocation) 258 160: 151(ptr) AccessChain 35(data) 67 76 259 161: 24(i16vec4) Load 160 260 162:159(i16vec3) VectorShuffle 161 161 0 1 2 261 163: 42(bool) GroupNonUniformAllEqual 44 162 262 164: 31(int) Select 163 54 41 263 165: 38(ptr) AccessChain 35(data) 158 37 264 Store 165 164 265 166: 6(int) Load 8(invocation) 266 167: 151(ptr) AccessChain 35(data) 76 76 267 168: 24(i16vec4) Load 167 268 169: 42(bool) GroupNonUniformAllEqual 44 168 269 170: 31(int) Select 169 54 41 270 171: 38(ptr) AccessChain 35(data) 166 37 271 Store 171 170 272 Branch 47 273 172: Label 274 173: 6(int) Load 8(invocation) 275 174: 38(ptr) AccessChain 35(data) 173 37 276 175: 31(int) Load 174 277 176: 42(bool) SLessThan 175 41 278 177: 42(bool) GroupNonUniformAny 44 176 279 SelectionMerge 179 None 280 BranchConditional 177 178 179 281 178: Label 282 180: 6(int) Load 8(invocation) 283 183: 182(ptr) AccessChain 35(data) 41 181 49 284 184: 25(int64_t) Load 183 285 185: 42(bool) GroupNonUniformAllEqual 44 184 286 186: 31(int) Select 185 54 41 287 187: 38(ptr) AccessChain 35(data) 180 37 288 Store 187 186 289 188: 6(int) Load 8(invocation) 290 191: 190(ptr) AccessChain 35(data) 54 181 291 192: 26(i64vec4) Load 191 292 193:189(i64vec2) VectorShuffle 192 192 0 1 293 194: 42(bool) GroupNonUniformAllEqual 44 193 294 195: 31(int) Select 194 54 41 295 196: 38(ptr) AccessChain 35(data) 188 37 296 Store 196 195 297 197: 6(int) Load 8(invocation) 298 199: 190(ptr) AccessChain 35(data) 67 181 299 200: 26(i64vec4) Load 199 300 201:198(i64vec3) VectorShuffle 200 200 0 1 2 301 202: 42(bool) GroupNonUniformAllEqual 44 201 302 203: 31(int) Select 202 54 41 303 204: 38(ptr) AccessChain 35(data) 197 37 304 Store 204 203 305 205: 6(int) Load 8(invocation) 306 206: 190(ptr) AccessChain 35(data) 76 181 307 207: 26(i64vec4) Load 206 308 208: 42(bool) GroupNonUniformAllEqual 44 207 309 209: 31(int) Select 208 54 41 310 210: 38(ptr) AccessChain 35(data) 205 37 311 Store 210 209 312 211: 6(int) Load 8(invocation) 313 214: 213(ptr) AccessChain 35(data) 41 212 49 314 215: 27(int64_t) Load 214 315 216: 42(bool) GroupNonUniformAllEqual 44 215 316 217: 31(int) Select 216 54 41 317 218: 38(ptr) AccessChain 35(data) 211 37 318 Store 218 217 319 219: 6(int) Load 8(invocation) 320 222: 221(ptr) AccessChain 35(data) 54 212 321 223: 28(i64vec4) Load 222 322 224:220(i64vec2) VectorShuffle 223 223 0 1 323 225: 42(bool) GroupNonUniformAllEqual 44 224 324 226: 31(int) Select 225 54 41 325 227: 38(ptr) AccessChain 35(data) 219 37 326 Store 227 226 327 228: 6(int) Load 8(invocation) 328 230: 221(ptr) AccessChain 35(data) 67 212 329 231: 28(i64vec4) Load 230 330 232:229(i64vec3) VectorShuffle 231 231 0 1 2 331 233: 42(bool) GroupNonUniformAllEqual 44 232 332 234: 31(int) Select 233 54 41 333 235: 38(ptr) AccessChain 35(data) 228 37 334 Store 235 234 335 236: 6(int) Load 8(invocation) 336 237: 221(ptr) AccessChain 35(data) 76 212 337 238: 28(i64vec4) Load 237 338 239: 42(bool) GroupNonUniformAllEqual 44 238 339 240: 31(int) Select 239 54 41 340 241: 38(ptr) AccessChain 35(data) 236 37 341 Store 241 240 342 242: 6(int) Load 8(invocation) 343 245: 244(ptr) AccessChain 35(data) 41 243 49 344 246:29(float16_t) Load 245 345 247: 42(bool) GroupNonUniformAllEqual 44 246 346 248: 31(int) Select 247 54 41 347 249: 38(ptr) AccessChain 35(data) 242 37 348 Store 249 248 349 250: 6(int) Load 8(invocation) 350 253: 252(ptr) AccessChain 35(data) 54 243 351 254: 30(f16vec4) Load 253 352 255:251(f16vec2) VectorShuffle 254 254 0 1 353 256: 42(bool) GroupNonUniformAllEqual 44 255 354 257: 31(int) Select 256 54 41 355 258: 38(ptr) AccessChain 35(data) 250 37 356 Store 258 257 357 259: 6(int) Load 8(invocation) 358 261: 252(ptr) AccessChain 35(data) 67 243 359 262: 30(f16vec4) Load 261 360 263:260(f16vec3) VectorShuffle 262 262 0 1 2 361 264: 42(bool) GroupNonUniformAllEqual 44 263 362 265: 31(int) Select 264 54 41 363 266: 38(ptr) AccessChain 35(data) 259 37 364 Store 266 265 365 267: 6(int) Load 8(invocation) 366 268: 252(ptr) AccessChain 35(data) 76 243 367 269: 30(f16vec4) Load 268 368 270: 42(bool) GroupNonUniformAllEqual 44 269 369 271: 31(int) Select 270 54 41 370 272: 38(ptr) AccessChain 35(data) 267 37 371 Store 272 271 372 Branch 179 373 179: Label 374 Branch 47 375 47: Label 376 Return 377 FunctionEnd 378