spv.subgroupVote.comp // Module Version 10300 // Generated by (magic number): 8000b // Id's are bound by 216 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformVote 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 8 1 Source GLSL 450 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 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" MemberName 24(Buffers) 4 "r" Name 27 "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 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 MemberDecorate 24(Buffers) 4 Offset 96 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 215 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: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 19(int) 25: TypeArray 24(Buffers) 15 26: TypePointer StorageBuffer 25 27(data): 26(ptr) Variable StorageBuffer 29: 19(int) Constant 4 30: TypePointer StorageBuffer 19(int) 33: 19(int) Constant 0 34: TypeBool 36: 6(int) Constant 3 41: 6(int) Constant 0 42: TypePointer StorageBuffer 17(float) 46: 19(int) Constant 1 50: TypeVector 17(float) 2 51: TypePointer StorageBuffer 18(fvec4) 59: 19(int) Constant 2 60: TypeVector 17(float) 3 68: 19(int) Constant 3 81: TypeVector 19(int) 2 82: TypePointer StorageBuffer 20(ivec4) 90: TypeVector 19(int) 3 104: TypePointer StorageBuffer 6(int) 111: TypeVector 6(int) 2 112: TypePointer StorageBuffer 21(ivec4) 120: TypeVector 6(int) 3 142: TypePointer StorageBuffer 22(float64_t) 149: TypeVector 22(float64_t) 2 150: TypePointer StorageBuffer 23(f64vec4) 158: TypeVector 22(float64_t) 3 182: 81(ivec2) ConstantComposite 33 33 183: TypeVector 34(bool) 2 194: 90(ivec3) ConstantComposite 33 33 33 195: TypeVector 34(bool) 3 205: 20(ivec4) ConstantComposite 33 33 33 33 206: TypeVector 34(bool) 4 213: 6(int) Constant 8 214: 6(int) Constant 1 215: 120(ivec3) ConstantComposite 213 213 214 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 28: 6(int) Load 8(invocation) 31: 30(ptr) AccessChain 27(data) 28 29 32: 19(int) Load 31 35: 34(bool) SLessThan 32 33 37: 34(bool) GroupNonUniformAll 36 35 SelectionMerge 39 None BranchConditional 37 38 133 38: Label 40: 6(int) Load 8(invocation) 43: 42(ptr) AccessChain 27(data) 33 33 41 44: 17(float) Load 43 45: 34(bool) GroupNonUniformAllEqual 36 44 47: 19(int) Select 45 46 33 48: 30(ptr) AccessChain 27(data) 40 29 Store 48 47 49: 6(int) Load 8(invocation) 52: 51(ptr) AccessChain 27(data) 46 33 53: 18(fvec4) Load 52 54: 50(fvec2) VectorShuffle 53 53 0 1 55: 34(bool) GroupNonUniformAllEqual 36 54 56: 19(int) Select 55 46 33 57: 30(ptr) AccessChain 27(data) 49 29 Store 57 56 58: 6(int) Load 8(invocation) 61: 51(ptr) AccessChain 27(data) 59 33 62: 18(fvec4) Load 61 63: 60(fvec3) VectorShuffle 62 62 0 1 2 64: 34(bool) GroupNonUniformAllEqual 36 63 65: 19(int) Select 64 46 33 66: 30(ptr) AccessChain 27(data) 58 29 Store 66 65 67: 6(int) Load 8(invocation) 69: 51(ptr) AccessChain 27(data) 68 33 70: 18(fvec4) Load 69 71: 34(bool) GroupNonUniformAllEqual 36 70 72: 19(int) Select 71 46 33 73: 30(ptr) AccessChain 27(data) 67 29 Store 73 72 74: 6(int) Load 8(invocation) 75: 30(ptr) AccessChain 27(data) 33 46 41 76: 19(int) Load 75 77: 34(bool) GroupNonUniformAllEqual 36 76 78: 19(int) Select 77 46 33 79: 30(ptr) AccessChain 27(data) 74 29 Store 79 78 80: 6(int) Load 8(invocation) 83: 82(ptr) AccessChain 27(data) 46 46 84: 20(ivec4) Load 83 85: 81(ivec2) VectorShuffle 84 84 0 1 86: 34(bool) GroupNonUniformAllEqual 36 85 87: 19(int) Select 86 46 33 88: 30(ptr) AccessChain 27(data) 80 29 Store 88 87 89: 6(int) Load 8(invocation) 91: 82(ptr) AccessChain 27(data) 59 46 92: 20(ivec4) Load 91 93: 90(ivec3) VectorShuffle 92 92 0 1 2 94: 34(bool) GroupNonUniformAllEqual 36 93 95: 19(int) Select 94 46 33 96: 30(ptr) AccessChain 27(data) 89 29 Store 96 95 97: 6(int) Load 8(invocation) 98: 82(ptr) AccessChain 27(data) 68 46 99: 20(ivec4) Load 98 100: 34(bool) GroupNonUniformAllEqual 36 99 101: 19(int) Select 100 46 33 102: 30(ptr) AccessChain 27(data) 97 29 Store 102 101 103: 6(int) Load 8(invocation) 105: 104(ptr) AccessChain 27(data) 33 59 41 106: 6(int) Load 105 107: 34(bool) GroupNonUniformAllEqual 36 106 108: 19(int) Select 107 46 33 109: 30(ptr) AccessChain 27(data) 103 29 Store 109 108 110: 6(int) Load 8(invocation) 113: 112(ptr) AccessChain 27(data) 46 59 114: 21(ivec4) Load 113 115: 111(ivec2) VectorShuffle 114 114 0 1 116: 34(bool) GroupNonUniformAllEqual 36 115 117: 19(int) Select 116 46 33 118: 30(ptr) AccessChain 27(data) 110 29 Store 118 117 119: 6(int) Load 8(invocation) 121: 112(ptr) AccessChain 27(data) 59 59 122: 21(ivec4) Load 121 123: 120(ivec3) VectorShuffle 122 122 0 1 2 124: 34(bool) GroupNonUniformAllEqual 36 123 125: 19(int) Select 124 46 33 126: 30(ptr) AccessChain 27(data) 119 29 Store 126 125 127: 6(int) Load 8(invocation) 128: 112(ptr) AccessChain 27(data) 68 59 129: 21(ivec4) Load 128 130: 34(bool) GroupNonUniformAllEqual 36 129 131: 19(int) Select 130 46 33 132: 30(ptr) AccessChain 27(data) 127 29 Store 132 131 Branch 39 133: Label 134: 6(int) Load 8(invocation) 135: 30(ptr) AccessChain 27(data) 134 29 136: 19(int) Load 135 137: 34(bool) SLessThan 136 33 138: 34(bool) GroupNonUniformAny 36 137 SelectionMerge 140 None BranchConditional 138 139 140 139: Label 141: 6(int) Load 8(invocation) 143: 142(ptr) AccessChain 27(data) 33 68 41 144:22(float64_t) Load 143 145: 34(bool) GroupNonUniformAllEqual 36 144 146: 19(int) Select 145 46 33 147: 30(ptr) AccessChain 27(data) 141 29 Store 147 146 148: 6(int) Load 8(invocation) 151: 150(ptr) AccessChain 27(data) 46 68 152: 23(f64vec4) Load 151 153:149(f64vec2) VectorShuffle 152 152 0 1 154: 34(bool) GroupNonUniformAllEqual 36 153 155: 19(int) Select 154 46 33 156: 30(ptr) AccessChain 27(data) 148 29 Store 156 155 157: 6(int) Load 8(invocation) 159: 150(ptr) AccessChain 27(data) 59 68 160: 23(f64vec4) Load 159 161:158(f64vec3) VectorShuffle 160 160 0 1 2 162: 34(bool) GroupNonUniformAllEqual 36 161 163: 19(int) Select 162 46 33 164: 30(ptr) AccessChain 27(data) 157 29 Store 164 163 165: 6(int) Load 8(invocation) 166: 150(ptr) AccessChain 27(data) 68 68 167: 23(f64vec4) Load 166 168: 34(bool) GroupNonUniformAllEqual 36 167 169: 19(int) Select 168 46 33 170: 30(ptr) AccessChain 27(data) 165 29 Store 170 169 171: 6(int) Load 8(invocation) 172: 30(ptr) AccessChain 27(data) 33 46 41 173: 19(int) Load 172 174: 34(bool) SLessThan 173 33 175: 34(bool) GroupNonUniformAllEqual 36 174 176: 19(int) Select 175 46 33 177: 30(ptr) AccessChain 27(data) 171 29 Store 177 176 178: 6(int) Load 8(invocation) 179: 82(ptr) AccessChain 27(data) 46 46 180: 20(ivec4) Load 179 181: 81(ivec2) VectorShuffle 180 180 0 1 184: 183(bvec2) SLessThan 181 182 185: 34(bool) GroupNonUniformAllEqual 36 184 186: 19(int) Select 185 46 33 187: 81(ivec2) CompositeConstruct 186 186 188: 19(int) CompositeExtract 187 0 189: 30(ptr) AccessChain 27(data) 178 29 Store 189 188 190: 6(int) Load 8(invocation) 191: 82(ptr) AccessChain 27(data) 46 46 192: 20(ivec4) Load 191 193: 90(ivec3) VectorShuffle 192 192 0 1 2 196: 195(bvec3) SLessThan 193 194 197: 34(bool) GroupNonUniformAllEqual 36 196 198: 19(int) Select 197 46 33 199: 90(ivec3) CompositeConstruct 198 198 198 200: 19(int) CompositeExtract 199 0 201: 30(ptr) AccessChain 27(data) 190 29 Store 201 200 202: 6(int) Load 8(invocation) 203: 82(ptr) AccessChain 27(data) 46 46 204: 20(ivec4) Load 203 207: 206(bvec4) SLessThan 204 205 208: 34(bool) GroupNonUniformAllEqual 36 207 209: 19(int) Select 208 46 33 210: 20(ivec4) CompositeConstruct 209 209 209 209 211: 19(int) CompositeExtract 210 0 212: 30(ptr) AccessChain 27(data) 202 29 Store 212 211 Branch 140 140: Label Branch 39 39: Label Return FunctionEnd