spv.460.subgroupEXT.mesh
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 279

                              Capability ClipDistance
                              Capability CullDistance
                              Capability GroupNonUniform
                              Capability GroupNonUniformVote
                              Capability GroupNonUniformArithmetic
                              Capability GroupNonUniformBallot
                              Capability GroupNonUniformShuffle
                              Capability GroupNonUniformShuffleRelative
                              Capability GroupNonUniformClustered
                              Capability GroupNonUniformQuad
                              Capability MeshShadingEXT
                              Extension  "SPV_EXT_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshEXT 4  "main" 35 41 57 109 147 161 162 167 168 171 172 173 174 175
                              ExecutionMode 4 LocalSize 32 1 1
                              ExecutionMode 4 OutputVertices 81
                              ExecutionMode 4 OutputPrimitivesNV 32
                              ExecutionMode 4 OutputTrianglesNV
                              Source GLSL 460
                              SourceExtension  "GL_EXT_mesh_shader"
                              SourceExtension  "GL_KHR_shader_subgroup_arithmetic"
                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_KHR_shader_subgroup_clustered"
                              SourceExtension  "GL_KHR_shader_subgroup_quad"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle_relative"
                              SourceExtension  "GL_KHR_shader_subgroup_vote"
                              Name 4  "main"
                              Name 6  "basic_works("
                              Name 13  "ballot_works(vf4;"
                              Name 12  "f4"
                              Name 16  "vote_works(vf4;"
                              Name 15  "f4"
                              Name 19  "shuffle_works(vf4;"
                              Name 18  "f4"
                              Name 22  "arith_works(vf4;"
                              Name 21  "f4"
                              Name 25  "clustered_works(vf4;"
                              Name 24  "f4"
                              Name 28  "quad_works(vf4;"
                              Name 27  "f4"
                              Name 32  "iid"
                              Name 35  "gl_LocalInvocationID"
                              Name 40  "gid"
                              Name 41  "gl_WorkGroupID"
                              Name 44  "vertexCount"
                              Name 46  "primitiveCount"
                              Name 54  "gl_MeshPerVertexEXT"
                              MemberName 54(gl_MeshPerVertexEXT) 0  "gl_Position"
                              MemberName 54(gl_MeshPerVertexEXT) 1  "gl_PointSize"
                              MemberName 54(gl_MeshPerVertexEXT) 2  "gl_ClipDistance"
                              MemberName 54(gl_MeshPerVertexEXT) 3  "gl_CullDistance"
                              Name 57  "gl_MeshVerticesEXT"
                              Name 106  "gl_MeshPerPrimitiveEXT"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 0  "gl_PrimitiveID"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
                              Name 109  "gl_MeshPrimitivesEXT"
                              Name 147  "gl_PrimitiveTriangleIndicesEXT"
                              Name 161  "gl_SubgroupSize"
                              Name 162  "gl_SubgroupInvocationID"
                              Name 167  "gl_NumSubgroups"
                              Name 168  "gl_SubgroupID"
                              Name 171  "gl_SubgroupEqMask"
                              Name 172  "gl_SubgroupGeMask"
                              Name 173  "gl_SubgroupGtMask"
                              Name 174  "gl_SubgroupLeMask"
                              Name 175  "gl_SubgroupLtMask"
                              Name 181  "ballot"
                              Name 218  "ballot"
                              Name 253  "ballot"
                              Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
                              MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position
                              MemberDecorate 54(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
                              MemberDecorate 54(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
                              MemberDecorate 54(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
                              Decorate 54(gl_MeshPerVertexEXT) Block
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
                              Decorate 106(gl_MeshPerPrimitiveEXT) Block
                              Decorate 147(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
                              Decorate 161(gl_SubgroupSize) RelaxedPrecision
                              Decorate 161(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 162(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 162(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 167(gl_NumSubgroups) BuiltIn NumSubgroups
                              Decorate 168(gl_SubgroupID) BuiltIn SubgroupId
                              Decorate 171(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
                              Decorate 172(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
                              Decorate 173(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
                              Decorate 174(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
                              Decorate 175(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
                              Decorate 278 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypePointer Function 9(fvec4)
              11:             TypeFunction 2 10(ptr)
              30:             TypeInt 32 0
              31:             TypePointer Function 30(int)
              33:             TypeVector 30(int) 3
              34:             TypePointer Input 33(ivec3)
35(gl_LocalInvocationID):     34(ptr) Variable Input
              36:     30(int) Constant 0
              37:             TypePointer Input 30(int)
41(gl_WorkGroupID):     34(ptr) Variable Input
              45:     30(int) Constant 81
              47:     30(int) Constant 32
              50:     30(int) Constant 4
              51:             TypeArray 8(float) 50
              52:     30(int) Constant 3
              53:             TypeArray 8(float) 52
54(gl_MeshPerVertexEXT):             TypeStruct 9(fvec4) 8(float) 51 53
              55:             TypeArray 54(gl_MeshPerVertexEXT) 45
              56:             TypePointer Output 55
57(gl_MeshVerticesEXT):     56(ptr) Variable Output
              59:             TypeInt 32 1
              60:     59(int) Constant 0
              61:    8(float) Constant 1065353216
              62:    9(fvec4) ConstantComposite 61 61 61 61
              63:             TypePointer Output 9(fvec4)
              66:     59(int) Constant 1
              67:    8(float) Constant 1073741824
              68:             TypePointer Output 8(float)
              71:     59(int) Constant 2
              72:     59(int) Constant 3
              73:    8(float) Constant 1077936128
              76:    8(float) Constant 1082130432
              78:     30(int) Constant 1
              79:     30(int) Constant 264
              80:     30(int) Constant 2
             105:             TypeBool
106(gl_MeshPerPrimitiveEXT):             TypeStruct 59(int) 59(int) 59(int) 105(bool)
             107:             TypeArray 106(gl_MeshPerPrimitiveEXT) 47
             108:             TypePointer Output 107
109(gl_MeshPrimitivesEXT):    108(ptr) Variable Output
             111:     59(int) Constant 6
             112:             TypePointer Output 59(int)
             115:     59(int) Constant 7
             118:     59(int) Constant 8
             121:   105(bool) ConstantFalse
             122:             TypePointer Output 105(bool)
             145:             TypeArray 33(ivec3) 47
             146:             TypePointer Output 145
147(gl_PrimitiveTriangleIndicesEXT):    146(ptr) Variable Output
             148:   33(ivec3) ConstantComposite 78 78 78
             149:             TypePointer Output 33(ivec3)
             153:   33(ivec3) ConstantComposite 80 80 80
161(gl_SubgroupSize):     37(ptr) Variable Input
162(gl_SubgroupInvocationID):     37(ptr) Variable Input
             163:     30(int) Constant 3400
             164:     30(int) Constant 72
             165:     30(int) Constant 2056
167(gl_NumSubgroups):     37(ptr) Variable Input
168(gl_SubgroupID):     37(ptr) Variable Input
             169:             TypeVector 30(int) 4
             170:             TypePointer Input 169(ivec4)
171(gl_SubgroupEqMask):    170(ptr) Variable Input
172(gl_SubgroupGeMask):    170(ptr) Variable Input
173(gl_SubgroupGtMask):    170(ptr) Variable Input
174(gl_SubgroupLeMask):    170(ptr) Variable Input
175(gl_SubgroupLtMask):    170(ptr) Variable Input
             180:             TypePointer Function 169(ivec4)
             183:  169(ivec4) ConstantComposite 78 78 78 78
             197:   105(bool) ConstantTrue
             254:     30(int) Constant 85
             255:  169(ivec4) ConstantComposite 254 36 36 36
             278:   33(ivec3) ConstantComposite 47 78 78
         4(main):           2 Function None 3
               5:             Label
         32(iid):     31(ptr) Variable Function
         40(gid):     31(ptr) Variable Function
 44(vertexCount):     31(ptr) Variable Function
46(primitiveCount):     31(ptr) Variable Function
              38:     37(ptr) AccessChain 35(gl_LocalInvocationID) 36
              39:     30(int) Load 38
                              Store 32(iid) 39
              42:     37(ptr) AccessChain 41(gl_WorkGroupID) 36
              43:     30(int) Load 42
                              Store 40(gid) 43
                              Store 44(vertexCount) 45
                              Store 46(primitiveCount) 47
              48:     30(int) Load 44(vertexCount)
              49:     30(int) Load 46(primitiveCount)
                              SetMeshOutputsEXT 48 49
              58:     30(int) Load 32(iid)
              64:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 58 60
                              Store 64 62
              65:     30(int) Load 32(iid)
              69:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 65 66
                              Store 69 67
              70:     30(int) Load 32(iid)
              74:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 70 71 72
                              Store 74 73
              75:     30(int) Load 32(iid)
              77:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 75 72 71
                              Store 77 76
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
              81:     30(int) Load 32(iid)
              82:     30(int) IAdd 81 78
              83:     30(int) Load 32(iid)
              84:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 83 60
              85:    9(fvec4) Load 84
              86:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 82 60
                              Store 86 85
              87:     30(int) Load 32(iid)
              88:     30(int) IAdd 87 78
              89:     30(int) Load 32(iid)
              90:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 89 66
              91:    8(float) Load 90
              92:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 88 66
                              Store 92 91
              93:     30(int) Load 32(iid)
              94:     30(int) IAdd 93 78
              95:     30(int) Load 32(iid)
              96:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 95 71 72
              97:    8(float) Load 96
              98:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 94 71 72
                              Store 98 97
              99:     30(int) Load 32(iid)
             100:     30(int) IAdd 99 78
             101:     30(int) Load 32(iid)
             102:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 101 72 71
             103:    8(float) Load 102
             104:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 100 72 71
                              Store 104 103
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             110:     30(int) Load 32(iid)
             113:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 110 60
                              Store 113 111
             114:     30(int) Load 32(iid)
             116:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 114 66
                              Store 116 115
             117:     30(int) Load 32(iid)
             119:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 117 71
                              Store 119 118
             120:     30(int) Load 32(iid)
             123:    122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 120 72
                              Store 123 121
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             124:     30(int) Load 32(iid)
             125:     30(int) IAdd 124 78
             126:     30(int) Load 32(iid)
             127:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 126 60
             128:     59(int) Load 127
             129:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 125 60
                              Store 129 128
             130:     30(int) Load 32(iid)
             131:     30(int) IAdd 130 78
             132:     30(int) Load 32(iid)
             133:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 132 66
             134:     59(int) Load 133
             135:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 131 66
                              Store 135 134
             136:     30(int) Load 32(iid)
             137:     30(int) IAdd 136 78
             138:     30(int) Load 32(iid)
             139:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 138 71
             140:     59(int) Load 139
             141:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 137 71
                              Store 141 140
             142:     30(int) Load 32(iid)
             143:     30(int) IAdd 142 78
             144:    122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 143 72
                              Store 144 121
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             150:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 60
                              Store 150 148
             151:     30(int) Load 46(primitiveCount)
             152:     30(int) ISub 151 78
             154:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 152
                              Store 154 153
             155:     30(int) Load 40(gid)
             156:     30(int) Load 40(gid)
             157:     30(int) ISub 156 78
             158:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 157
             159:   33(ivec3) Load 158
             160:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 155
                              Store 160 159
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
                              Return
                              FunctionEnd
 6(basic_works():           2 Function None 3
               7:             Label
                              ControlBarrier 52 52 163
                              MemoryBarrier 52 163
                              MemoryBarrier 52 164
                              MemoryBarrier 52 165
             166:   105(bool) GroupNonUniformElect 52
                              MemoryBarrier 52 79
                              Return
                              FunctionEnd
13(ballot_works(vf4;):           2 Function None 11
          12(f4):     10(ptr) FunctionParameter
              14:             Label
     181(ballot):    180(ptr) Variable Function
             176:    9(fvec4) Load 12(f4)
             177:    9(fvec4) GroupNonUniformBroadcast 52 176 36
             178:    9(fvec4) Load 12(f4)
             179:    9(fvec4) GroupNonUniformBroadcastFirst 52 178
             182:  169(ivec4) GroupNonUniformBallot 52 121
                              Store 181(ballot) 182
             184:   105(bool) GroupNonUniformInverseBallot 52 183
             185:  169(ivec4) Load 181(ballot)
             186:   105(bool) GroupNonUniformBallotBitExtract 52 185 36
             187:  169(ivec4) Load 181(ballot)
             188:     30(int) GroupNonUniformBallotBitCount 52 Reduce 187
             189:  169(ivec4) Load 181(ballot)
             190:     30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 189
             191:  169(ivec4) Load 181(ballot)
             192:     30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 191
             193:  169(ivec4) Load 181(ballot)
             194:     30(int) GroupNonUniformBallotFindLSB 52 193
             195:  169(ivec4) Load 181(ballot)
             196:     30(int) GroupNonUniformBallotFindMSB 52 195
                              Return
                              FunctionEnd
16(vote_works(vf4;):           2 Function None 11
          15(f4):     10(ptr) FunctionParameter
              17:             Label
             198:   105(bool) GroupNonUniformAll 52 197
             199:   105(bool) GroupNonUniformAny 52 121
             200:    9(fvec4) Load 15(f4)
             201:   105(bool) GroupNonUniformAllEqual 52 200
                              Return
                              FunctionEnd
19(shuffle_works(vf4;):           2 Function None 11
          18(f4):     10(ptr) FunctionParameter
              20:             Label
             202:    9(fvec4) Load 18(f4)
             203:    9(fvec4) GroupNonUniformShuffle 52 202 36
             204:    9(fvec4) Load 18(f4)
             205:    9(fvec4) GroupNonUniformShuffleXor 52 204 78
             206:    9(fvec4) Load 18(f4)
             207:    9(fvec4) GroupNonUniformShuffleUp 52 206 78
             208:    9(fvec4) Load 18(f4)
             209:    9(fvec4) GroupNonUniformShuffleDown 52 208 78
                              Return
                              FunctionEnd
22(arith_works(vf4;):           2 Function None 11
          21(f4):     10(ptr) FunctionParameter
              23:             Label
     218(ballot):    180(ptr) Variable Function
             210:    9(fvec4) Load 21(f4)
             211:    9(fvec4) GroupNonUniformFAdd 52 Reduce 210
             212:    9(fvec4) Load 21(f4)
             213:    9(fvec4) GroupNonUniformFMul 52 Reduce 212
             214:    9(fvec4) Load 21(f4)
             215:    9(fvec4) GroupNonUniformFMin 52 Reduce 214
             216:    9(fvec4) Load 21(f4)
             217:    9(fvec4) GroupNonUniformFMax 52 Reduce 216
             219:  169(ivec4) Load 218(ballot)
             220:  169(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 219
             221:  169(ivec4) Load 218(ballot)
             222:  169(ivec4) GroupNonUniformBitwiseOr 52 Reduce 221
             223:  169(ivec4) Load 218(ballot)
             224:  169(ivec4) GroupNonUniformBitwiseXor 52 Reduce 223
             225:    9(fvec4) Load 21(f4)
             226:    9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 225
             227:    9(fvec4) Load 21(f4)
             228:    9(fvec4) GroupNonUniformFMul 52 InclusiveScan 227
             229:    9(fvec4) Load 21(f4)
             230:    9(fvec4) GroupNonUniformFMin 52 InclusiveScan 229
             231:    9(fvec4) Load 21(f4)
             232:    9(fvec4) GroupNonUniformFMax 52 InclusiveScan 231
             233:  169(ivec4) Load 218(ballot)
             234:  169(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 233
             235:  169(ivec4) Load 218(ballot)
             236:  169(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 235
             237:  169(ivec4) Load 218(ballot)
             238:  169(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 237
             239:    9(fvec4) Load 21(f4)
             240:    9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 239
             241:    9(fvec4) Load 21(f4)
             242:    9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 241
             243:    9(fvec4) Load 21(f4)
             244:    9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 243
             245:    9(fvec4) Load 21(f4)
             246:    9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 245
             247:  169(ivec4) Load 218(ballot)
             248:  169(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 247
             249:  169(ivec4) Load 218(ballot)
             250:  169(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 249
             251:  169(ivec4) Load 218(ballot)
             252:  169(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 251
                              Return
                              FunctionEnd
25(clustered_works(vf4;):           2 Function None 11
          24(f4):     10(ptr) FunctionParameter
              26:             Label
     253(ballot):    180(ptr) Variable Function
                              Store 253(ballot) 255
             256:    9(fvec4) Load 24(f4)
             257:    9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 256 80
             258:    9(fvec4) Load 24(f4)
             259:    9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 258 80
             260:    9(fvec4) Load 24(f4)
             261:    9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 260 80
             262:    9(fvec4) Load 24(f4)
             263:    9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 262 80
             264:  169(ivec4) Load 253(ballot)
             265:  169(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 264 80
             266:  169(ivec4) Load 253(ballot)
             267:  169(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 266 80
             268:  169(ivec4) Load 253(ballot)
             269:  169(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 268 80
                              Return
                              FunctionEnd
28(quad_works(vf4;):           2 Function None 11
          27(f4):     10(ptr) FunctionParameter
              29:             Label
             270:    9(fvec4) Load 27(f4)
             271:    9(fvec4) GroupNonUniformQuadBroadcast 52 270 36
             272:    9(fvec4) Load 27(f4)
             273:    9(fvec4) GroupNonUniformQuadSwap 52 272 36
             274:    9(fvec4) Load 27(f4)
             275:    9(fvec4) GroupNonUniformQuadSwap 52 274 78
             276:    9(fvec4) Load 27(f4)
             277:    9(fvec4) GroupNonUniformQuadSwap 52 276 80
                              Return
                              FunctionEnd
