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