| 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 |