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