1spv.460.subgroupEXT.mesh 2// Module Version 10400 3// Generated by (magic number): 8000b 4// Id's are bound by 279 5 6 Capability ClipDistance 7 Capability CullDistance 8 Capability GroupNonUniform 9 Capability GroupNonUniformVote 10 Capability GroupNonUniformArithmetic 11 Capability GroupNonUniformBallot 12 Capability GroupNonUniformShuffle 13 Capability GroupNonUniformShuffleRelative 14 Capability GroupNonUniformClustered 15 Capability GroupNonUniformQuad 16 Capability MeshShadingEXT 17 Extension "SPV_EXT_mesh_shader" 18 1: ExtInstImport "GLSL.std.450" 19 MemoryModel Logical GLSL450 20 EntryPoint MeshEXT 4 "main" 35 41 57 109 147 161 162 167 168 171 172 173 174 175 21 ExecutionMode 4 LocalSize 32 1 1 22 ExecutionMode 4 OutputVertices 81 23 ExecutionMode 4 OutputPrimitivesNV 32 24 ExecutionMode 4 OutputTrianglesNV 25 Source GLSL 460 26 SourceExtension "GL_EXT_mesh_shader" 27 SourceExtension "GL_KHR_shader_subgroup_arithmetic" 28 SourceExtension "GL_KHR_shader_subgroup_ballot" 29 SourceExtension "GL_KHR_shader_subgroup_basic" 30 SourceExtension "GL_KHR_shader_subgroup_clustered" 31 SourceExtension "GL_KHR_shader_subgroup_quad" 32 SourceExtension "GL_KHR_shader_subgroup_shuffle" 33 SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" 34 SourceExtension "GL_KHR_shader_subgroup_vote" 35 Name 4 "main" 36 Name 6 "basic_works(" 37 Name 13 "ballot_works(vf4;" 38 Name 12 "f4" 39 Name 16 "vote_works(vf4;" 40 Name 15 "f4" 41 Name 19 "shuffle_works(vf4;" 42 Name 18 "f4" 43 Name 22 "arith_works(vf4;" 44 Name 21 "f4" 45 Name 25 "clustered_works(vf4;" 46 Name 24 "f4" 47 Name 28 "quad_works(vf4;" 48 Name 27 "f4" 49 Name 32 "iid" 50 Name 35 "gl_LocalInvocationID" 51 Name 40 "gid" 52 Name 41 "gl_WorkGroupID" 53 Name 44 "vertexCount" 54 Name 46 "primitiveCount" 55 Name 54 "gl_MeshPerVertexEXT" 56 MemberName 54(gl_MeshPerVertexEXT) 0 "gl_Position" 57 MemberName 54(gl_MeshPerVertexEXT) 1 "gl_PointSize" 58 MemberName 54(gl_MeshPerVertexEXT) 2 "gl_ClipDistance" 59 MemberName 54(gl_MeshPerVertexEXT) 3 "gl_CullDistance" 60 Name 57 "gl_MeshVerticesEXT" 61 Name 106 "gl_MeshPerPrimitiveEXT" 62 MemberName 106(gl_MeshPerPrimitiveEXT) 0 "gl_PrimitiveID" 63 MemberName 106(gl_MeshPerPrimitiveEXT) 1 "gl_Layer" 64 MemberName 106(gl_MeshPerPrimitiveEXT) 2 "gl_ViewportIndex" 65 MemberName 106(gl_MeshPerPrimitiveEXT) 3 "gl_CullPrimitiveEXT" 66 Name 109 "gl_MeshPrimitivesEXT" 67 Name 147 "gl_PrimitiveTriangleIndicesEXT" 68 Name 161 "gl_SubgroupSize" 69 Name 162 "gl_SubgroupInvocationID" 70 Name 167 "gl_NumSubgroups" 71 Name 168 "gl_SubgroupID" 72 Name 171 "gl_SubgroupEqMask" 73 Name 172 "gl_SubgroupGeMask" 74 Name 173 "gl_SubgroupGtMask" 75 Name 174 "gl_SubgroupLeMask" 76 Name 175 "gl_SubgroupLtMask" 77 Name 181 "ballot" 78 Name 218 "ballot" 79 Name 253 "ballot" 80 Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId 81 Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId 82 MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position 83 MemberDecorate 54(gl_MeshPerVertexEXT) 1 BuiltIn PointSize 84 MemberDecorate 54(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance 85 MemberDecorate 54(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance 86 Decorate 54(gl_MeshPerVertexEXT) Block 87 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV 88 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId 89 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV 90 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer 91 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV 92 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex 93 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV 94 MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT 95 Decorate 106(gl_MeshPerPrimitiveEXT) Block 96 Decorate 147(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT 97 Decorate 161(gl_SubgroupSize) RelaxedPrecision 98 Decorate 161(gl_SubgroupSize) BuiltIn SubgroupSize 99 Decorate 162(gl_SubgroupInvocationID) RelaxedPrecision 100 Decorate 162(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId 101 Decorate 167(gl_NumSubgroups) BuiltIn NumSubgroups 102 Decorate 168(gl_SubgroupID) BuiltIn SubgroupId 103 Decorate 171(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR 104 Decorate 172(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR 105 Decorate 173(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR 106 Decorate 174(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR 107 Decorate 175(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR 108 Decorate 278 BuiltIn WorkgroupSize 109 2: TypeVoid 110 3: TypeFunction 2 111 8: TypeFloat 32 112 9: TypeVector 8(float) 4 113 10: TypePointer Function 9(fvec4) 114 11: TypeFunction 2 10(ptr) 115 30: TypeInt 32 0 116 31: TypePointer Function 30(int) 117 33: TypeVector 30(int) 3 118 34: TypePointer Input 33(ivec3) 11935(gl_LocalInvocationID): 34(ptr) Variable Input 120 36: 30(int) Constant 0 121 37: TypePointer Input 30(int) 12241(gl_WorkGroupID): 34(ptr) Variable Input 123 45: 30(int) Constant 81 124 47: 30(int) Constant 32 125 50: 30(int) Constant 4 126 51: TypeArray 8(float) 50 127 52: 30(int) Constant 3 128 53: TypeArray 8(float) 52 12954(gl_MeshPerVertexEXT): TypeStruct 9(fvec4) 8(float) 51 53 130 55: TypeArray 54(gl_MeshPerVertexEXT) 45 131 56: TypePointer Output 55 13257(gl_MeshVerticesEXT): 56(ptr) Variable Output 133 59: TypeInt 32 1 134 60: 59(int) Constant 0 135 61: 8(float) Constant 1065353216 136 62: 9(fvec4) ConstantComposite 61 61 61 61 137 63: TypePointer Output 9(fvec4) 138 66: 59(int) Constant 1 139 67: 8(float) Constant 1073741824 140 68: TypePointer Output 8(float) 141 71: 59(int) Constant 2 142 72: 59(int) Constant 3 143 73: 8(float) Constant 1077936128 144 76: 8(float) Constant 1082130432 145 78: 30(int) Constant 1 146 79: 30(int) Constant 264 147 80: 30(int) Constant 2 148 105: TypeBool 149106(gl_MeshPerPrimitiveEXT): TypeStruct 59(int) 59(int) 59(int) 105(bool) 150 107: TypeArray 106(gl_MeshPerPrimitiveEXT) 47 151 108: TypePointer Output 107 152109(gl_MeshPrimitivesEXT): 108(ptr) Variable Output 153 111: 59(int) Constant 6 154 112: TypePointer Output 59(int) 155 115: 59(int) Constant 7 156 118: 59(int) Constant 8 157 121: 105(bool) ConstantFalse 158 122: TypePointer Output 105(bool) 159 145: TypeArray 33(ivec3) 47 160 146: TypePointer Output 145 161147(gl_PrimitiveTriangleIndicesEXT): 146(ptr) Variable Output 162 148: 33(ivec3) ConstantComposite 78 78 78 163 149: TypePointer Output 33(ivec3) 164 153: 33(ivec3) ConstantComposite 80 80 80 165161(gl_SubgroupSize): 37(ptr) Variable Input 166162(gl_SubgroupInvocationID): 37(ptr) Variable Input 167 163: 30(int) Constant 3400 168 164: 30(int) Constant 72 169 165: 30(int) Constant 2056 170167(gl_NumSubgroups): 37(ptr) Variable Input 171168(gl_SubgroupID): 37(ptr) Variable Input 172 169: TypeVector 30(int) 4 173 170: TypePointer Input 169(ivec4) 174171(gl_SubgroupEqMask): 170(ptr) Variable Input 175172(gl_SubgroupGeMask): 170(ptr) Variable Input 176173(gl_SubgroupGtMask): 170(ptr) Variable Input 177174(gl_SubgroupLeMask): 170(ptr) Variable Input 178175(gl_SubgroupLtMask): 170(ptr) Variable Input 179 180: TypePointer Function 169(ivec4) 180 183: 169(ivec4) ConstantComposite 78 78 78 78 181 197: 105(bool) ConstantTrue 182 254: 30(int) Constant 85 183 255: 169(ivec4) ConstantComposite 254 36 36 36 184 278: 33(ivec3) ConstantComposite 47 78 78 185 4(main): 2 Function None 3 186 5: Label 187 32(iid): 31(ptr) Variable Function 188 40(gid): 31(ptr) Variable Function 189 44(vertexCount): 31(ptr) Variable Function 19046(primitiveCount): 31(ptr) Variable Function 191 38: 37(ptr) AccessChain 35(gl_LocalInvocationID) 36 192 39: 30(int) Load 38 193 Store 32(iid) 39 194 42: 37(ptr) AccessChain 41(gl_WorkGroupID) 36 195 43: 30(int) Load 42 196 Store 40(gid) 43 197 Store 44(vertexCount) 45 198 Store 46(primitiveCount) 47 199 48: 30(int) Load 44(vertexCount) 200 49: 30(int) Load 46(primitiveCount) 201 SetMeshOutputsEXT 48 49 202 58: 30(int) Load 32(iid) 203 64: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 58 60 204 Store 64 62 205 65: 30(int) Load 32(iid) 206 69: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 65 66 207 Store 69 67 208 70: 30(int) Load 32(iid) 209 74: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 70 71 72 210 Store 74 73 211 75: 30(int) Load 32(iid) 212 77: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 75 72 71 213 Store 77 76 214 MemoryBarrier 78 79 215 ControlBarrier 80 80 79 216 81: 30(int) Load 32(iid) 217 82: 30(int) IAdd 81 78 218 83: 30(int) Load 32(iid) 219 84: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 83 60 220 85: 9(fvec4) Load 84 221 86: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 82 60 222 Store 86 85 223 87: 30(int) Load 32(iid) 224 88: 30(int) IAdd 87 78 225 89: 30(int) Load 32(iid) 226 90: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 89 66 227 91: 8(float) Load 90 228 92: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 88 66 229 Store 92 91 230 93: 30(int) Load 32(iid) 231 94: 30(int) IAdd 93 78 232 95: 30(int) Load 32(iid) 233 96: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 95 71 72 234 97: 8(float) Load 96 235 98: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 94 71 72 236 Store 98 97 237 99: 30(int) Load 32(iid) 238 100: 30(int) IAdd 99 78 239 101: 30(int) Load 32(iid) 240 102: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 101 72 71 241 103: 8(float) Load 102 242 104: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 100 72 71 243 Store 104 103 244 MemoryBarrier 78 79 245 ControlBarrier 80 80 79 246 110: 30(int) Load 32(iid) 247 113: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 110 60 248 Store 113 111 249 114: 30(int) Load 32(iid) 250 116: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 114 66 251 Store 116 115 252 117: 30(int) Load 32(iid) 253 119: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 117 71 254 Store 119 118 255 120: 30(int) Load 32(iid) 256 123: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 120 72 257 Store 123 121 258 MemoryBarrier 78 79 259 ControlBarrier 80 80 79 260 124: 30(int) Load 32(iid) 261 125: 30(int) IAdd 124 78 262 126: 30(int) Load 32(iid) 263 127: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 126 60 264 128: 59(int) Load 127 265 129: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 125 60 266 Store 129 128 267 130: 30(int) Load 32(iid) 268 131: 30(int) IAdd 130 78 269 132: 30(int) Load 32(iid) 270 133: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 132 66 271 134: 59(int) Load 133 272 135: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 131 66 273 Store 135 134 274 136: 30(int) Load 32(iid) 275 137: 30(int) IAdd 136 78 276 138: 30(int) Load 32(iid) 277 139: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 138 71 278 140: 59(int) Load 139 279 141: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 137 71 280 Store 141 140 281 142: 30(int) Load 32(iid) 282 143: 30(int) IAdd 142 78 283 144: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 143 72 284 Store 144 121 285 MemoryBarrier 78 79 286 ControlBarrier 80 80 79 287 150: 149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 60 288 Store 150 148 289 151: 30(int) Load 46(primitiveCount) 290 152: 30(int) ISub 151 78 291 154: 149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 152 292 Store 154 153 293 155: 30(int) Load 40(gid) 294 156: 30(int) Load 40(gid) 295 157: 30(int) ISub 156 78 296 158: 149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 157 297 159: 33(ivec3) Load 158 298 160: 149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 155 299 Store 160 159 300 MemoryBarrier 78 79 301 ControlBarrier 80 80 79 302 Return 303 FunctionEnd 304 6(basic_works(): 2 Function None 3 305 7: Label 306 ControlBarrier 52 52 163 307 MemoryBarrier 52 163 308 MemoryBarrier 52 164 309 MemoryBarrier 52 165 310 166: 105(bool) GroupNonUniformElect 52 311 MemoryBarrier 52 79 312 Return 313 FunctionEnd 31413(ballot_works(vf4;): 2 Function None 11 315 12(f4): 10(ptr) FunctionParameter 316 14: Label 317 181(ballot): 180(ptr) Variable Function 318 176: 9(fvec4) Load 12(f4) 319 177: 9(fvec4) GroupNonUniformBroadcast 52 176 36 320 178: 9(fvec4) Load 12(f4) 321 179: 9(fvec4) GroupNonUniformBroadcastFirst 52 178 322 182: 169(ivec4) GroupNonUniformBallot 52 121 323 Store 181(ballot) 182 324 184: 105(bool) GroupNonUniformInverseBallot 52 183 325 185: 169(ivec4) Load 181(ballot) 326 186: 105(bool) GroupNonUniformBallotBitExtract 52 185 36 327 187: 169(ivec4) Load 181(ballot) 328 188: 30(int) GroupNonUniformBallotBitCount 52 Reduce 187 329 189: 169(ivec4) Load 181(ballot) 330 190: 30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 189 331 191: 169(ivec4) Load 181(ballot) 332 192: 30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 191 333 193: 169(ivec4) Load 181(ballot) 334 194: 30(int) GroupNonUniformBallotFindLSB 52 193 335 195: 169(ivec4) Load 181(ballot) 336 196: 30(int) GroupNonUniformBallotFindMSB 52 195 337 Return 338 FunctionEnd 33916(vote_works(vf4;): 2 Function None 11 340 15(f4): 10(ptr) FunctionParameter 341 17: Label 342 198: 105(bool) GroupNonUniformAll 52 197 343 199: 105(bool) GroupNonUniformAny 52 121 344 200: 9(fvec4) Load 15(f4) 345 201: 105(bool) GroupNonUniformAllEqual 52 200 346 Return 347 FunctionEnd 34819(shuffle_works(vf4;): 2 Function None 11 349 18(f4): 10(ptr) FunctionParameter 350 20: Label 351 202: 9(fvec4) Load 18(f4) 352 203: 9(fvec4) GroupNonUniformShuffle 52 202 36 353 204: 9(fvec4) Load 18(f4) 354 205: 9(fvec4) GroupNonUniformShuffleXor 52 204 78 355 206: 9(fvec4) Load 18(f4) 356 207: 9(fvec4) GroupNonUniformShuffleUp 52 206 78 357 208: 9(fvec4) Load 18(f4) 358 209: 9(fvec4) GroupNonUniformShuffleDown 52 208 78 359 Return 360 FunctionEnd 36122(arith_works(vf4;): 2 Function None 11 362 21(f4): 10(ptr) FunctionParameter 363 23: Label 364 218(ballot): 180(ptr) Variable Function 365 210: 9(fvec4) Load 21(f4) 366 211: 9(fvec4) GroupNonUniformFAdd 52 Reduce 210 367 212: 9(fvec4) Load 21(f4) 368 213: 9(fvec4) GroupNonUniformFMul 52 Reduce 212 369 214: 9(fvec4) Load 21(f4) 370 215: 9(fvec4) GroupNonUniformFMin 52 Reduce 214 371 216: 9(fvec4) Load 21(f4) 372 217: 9(fvec4) GroupNonUniformFMax 52 Reduce 216 373 219: 169(ivec4) Load 218(ballot) 374 220: 169(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 219 375 221: 169(ivec4) Load 218(ballot) 376 222: 169(ivec4) GroupNonUniformBitwiseOr 52 Reduce 221 377 223: 169(ivec4) Load 218(ballot) 378 224: 169(ivec4) GroupNonUniformBitwiseXor 52 Reduce 223 379 225: 9(fvec4) Load 21(f4) 380 226: 9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 225 381 227: 9(fvec4) Load 21(f4) 382 228: 9(fvec4) GroupNonUniformFMul 52 InclusiveScan 227 383 229: 9(fvec4) Load 21(f4) 384 230: 9(fvec4) GroupNonUniformFMin 52 InclusiveScan 229 385 231: 9(fvec4) Load 21(f4) 386 232: 9(fvec4) GroupNonUniformFMax 52 InclusiveScan 231 387 233: 169(ivec4) Load 218(ballot) 388 234: 169(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 233 389 235: 169(ivec4) Load 218(ballot) 390 236: 169(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 235 391 237: 169(ivec4) Load 218(ballot) 392 238: 169(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 237 393 239: 9(fvec4) Load 21(f4) 394 240: 9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 239 395 241: 9(fvec4) Load 21(f4) 396 242: 9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 241 397 243: 9(fvec4) Load 21(f4) 398 244: 9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 243 399 245: 9(fvec4) Load 21(f4) 400 246: 9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 245 401 247: 169(ivec4) Load 218(ballot) 402 248: 169(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 247 403 249: 169(ivec4) Load 218(ballot) 404 250: 169(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 249 405 251: 169(ivec4) Load 218(ballot) 406 252: 169(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 251 407 Return 408 FunctionEnd 40925(clustered_works(vf4;): 2 Function None 11 410 24(f4): 10(ptr) FunctionParameter 411 26: Label 412 253(ballot): 180(ptr) Variable Function 413 Store 253(ballot) 255 414 256: 9(fvec4) Load 24(f4) 415 257: 9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 256 80 416 258: 9(fvec4) Load 24(f4) 417 259: 9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 258 80 418 260: 9(fvec4) Load 24(f4) 419 261: 9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 260 80 420 262: 9(fvec4) Load 24(f4) 421 263: 9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 262 80 422 264: 169(ivec4) Load 253(ballot) 423 265: 169(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 264 80 424 266: 169(ivec4) Load 253(ballot) 425 267: 169(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 266 80 426 268: 169(ivec4) Load 253(ballot) 427 269: 169(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 268 80 428 Return 429 FunctionEnd 43028(quad_works(vf4;): 2 Function None 11 431 27(f4): 10(ptr) FunctionParameter 432 29: Label 433 270: 9(fvec4) Load 27(f4) 434 271: 9(fvec4) GroupNonUniformQuadBroadcast 52 270 36 435 272: 9(fvec4) Load 27(f4) 436 273: 9(fvec4) GroupNonUniformQuadSwap 52 272 36 437 274: 9(fvec4) Load 27(f4) 438 275: 9(fvec4) GroupNonUniformQuadSwap 52 274 78 439 276: 9(fvec4) Load 27(f4) 440 277: 9(fvec4) GroupNonUniformQuadSwap 52 276 80 441 Return 442 FunctionEnd 443