spv.ext.AnyHitShader.rahit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 116

                              Capability GroupNonUniform
                              Capability RayTracingKHR
                              Capability RayTracingPositionFetchKHR
                              Capability RayCullMaskKHR
                              Extension  "SPV_KHR_ray_cull_mask"
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_KHR_ray_tracing_position_fetch"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint AnyHitKHR 4  "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 82 88 93 107
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_cull_mask"
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_EXT_ray_tracing_position_fetch"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              Name 4  "main"
                              Name 9  "v0"
                              Name 11  "gl_LaunchIDEXT"
                              Name 13  "v1"
                              Name 14  "gl_LaunchSizeEXT"
                              Name 18  "v2"
                              Name 20  "gl_PrimitiveID"
                              Name 22  "v3"
                              Name 23  "gl_InstanceID"
                              Name 25  "v4"
                              Name 26  "gl_InstanceCustomIndexEXT"
                              Name 31  "v5"
                              Name 33  "gl_WorldRayOriginEXT"
                              Name 35  "v6"
                              Name 36  "gl_WorldRayDirectionEXT"
                              Name 38  "v7"
                              Name 39  "gl_ObjectRayOriginEXT"
                              Name 41  "v8"
                              Name 42  "gl_ObjectRayDirectionEXT"
                              Name 45  "v9"
                              Name 47  "gl_RayTminEXT"
                              Name 49  "v10"
                              Name 50  "gl_RayTmaxEXT"
                              Name 52  "v11"
                              Name 53  "gl_HitTEXT"
                              Name 56  "v12"
                              Name 58  "gl_HitKindEXT"
                              Name 62  "v13"
                              Name 64  "gl_ObjectToWorldEXT"
                              Name 66  "v14"
                              Name 67  "gl_WorldToObjectEXT"
                              Name 69  "v15"
                              Name 70  "gl_GeometryIndexEXT"
                              Name 75  "v16"
                              Name 78  "v17"
                              Name 81  "v18"
                              Name 82  "gl_CullMaskEXT"
                              Name 84  "v19"
                              Name 88  "gl_HitTriangleVertexPositionsEXT"
                              Name 93  "incomingPayload"
                              Name 107  "gl_SubgroupSize"
                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
                              Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
                              Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 23(gl_InstanceID) BuiltIn InstanceId
                              Decorate 26(gl_InstanceCustomIndexEXT) BuiltIn InstanceCustomIndexKHR
                              Decorate 33(gl_WorldRayOriginEXT) BuiltIn WorldRayOriginKHR
                              Decorate 36(gl_WorldRayDirectionEXT) BuiltIn WorldRayDirectionKHR
                              Decorate 39(gl_ObjectRayOriginEXT) BuiltIn ObjectRayOriginKHR
                              Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR
                              Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR
                              Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
                              Decorate 53(gl_HitTEXT) BuiltIn RayTmaxKHR
                              Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR
                              Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
                              Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
                              Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
                              Decorate 82(gl_CullMaskEXT) BuiltIn CullMaskKHR
                              Decorate 88(gl_HitTriangleVertexPositionsEXT) BuiltIn HitTriangleVertexPositionsKHR
                              Decorate 107(gl_SubgroupSize) RelaxedPrecision
                              Decorate 107(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 108 RelaxedPrecision
                              Decorate 109 RelaxedPrecision
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
              10:             TypePointer Input 7(ivec3)
11(gl_LaunchIDEXT):     10(ptr) Variable Input
14(gl_LaunchSizeEXT):     10(ptr) Variable Input
              16:             TypeInt 32 1
              17:             TypePointer Function 16(int)
              19:             TypePointer Input 16(int)
20(gl_PrimitiveID):     19(ptr) Variable Input
23(gl_InstanceID):     19(ptr) Variable Input
26(gl_InstanceCustomIndexEXT):     19(ptr) Variable Input
              28:             TypeFloat 32
              29:             TypeVector 28(float) 3
              30:             TypePointer Function 29(fvec3)
              32:             TypePointer Input 29(fvec3)
33(gl_WorldRayOriginEXT):     32(ptr) Variable Input
36(gl_WorldRayDirectionEXT):     32(ptr) Variable Input
39(gl_ObjectRayOriginEXT):     32(ptr) Variable Input
42(gl_ObjectRayDirectionEXT):     32(ptr) Variable Input
              44:             TypePointer Function 28(float)
              46:             TypePointer Input 28(float)
47(gl_RayTminEXT):     46(ptr) Variable Input
50(gl_RayTmaxEXT):     46(ptr) Variable Input
  53(gl_HitTEXT):     46(ptr) Variable Input
              55:             TypePointer Function 6(int)
              57:             TypePointer Input 6(int)
58(gl_HitKindEXT):     57(ptr) Variable Input
              60:             TypeMatrix 29(fvec3) 4
              61:             TypePointer Function 60
              63:             TypePointer Input 60
64(gl_ObjectToWorldEXT):     63(ptr) Variable Input
67(gl_WorldToObjectEXT):     63(ptr) Variable Input
70(gl_GeometryIndexEXT):     19(ptr) Variable Input
              72:             TypeVector 28(float) 4
              73:             TypeMatrix 72(fvec4) 3
              74:             TypePointer Function 73
82(gl_CullMaskEXT):     57(ptr) Variable Input
              85:      6(int) Constant 3
              86:             TypeArray 29(fvec3) 85
              87:             TypePointer Input 86
88(gl_HitTriangleVertexPositionsEXT):     87(ptr) Variable Input
              89:     16(int) Constant 0
              92:             TypePointer IncomingRayPayloadKHR 72(fvec4)
93(incomingPayload):     92(ptr) Variable IncomingRayPayloadKHR
              94:   28(float) Constant 1056964608
              95:   72(fvec4) ConstantComposite 94 94 94 94
              97:     16(int) Constant 1
              98:             TypeBool
             103:      6(int) Constant 0
107(gl_SubgroupSize):     57(ptr) Variable Input
             110:             TypePointer IncomingRayPayloadKHR 28(float)
         4(main):           2 Function None 3
               5:             Label
           9(v0):      8(ptr) Variable Function
          13(v1):      8(ptr) Variable Function
          18(v2):     17(ptr) Variable Function
          22(v3):     17(ptr) Variable Function
          25(v4):     17(ptr) Variable Function
          31(v5):     30(ptr) Variable Function
          35(v6):     30(ptr) Variable Function
          38(v7):     30(ptr) Variable Function
          41(v8):     30(ptr) Variable Function
          45(v9):     44(ptr) Variable Function
         49(v10):     44(ptr) Variable Function
         52(v11):     44(ptr) Variable Function
         56(v12):     55(ptr) Variable Function
         62(v13):     61(ptr) Variable Function
         66(v14):     61(ptr) Variable Function
         69(v15):     17(ptr) Variable Function
         75(v16):     74(ptr) Variable Function
         78(v17):     74(ptr) Variable Function
         81(v18):     55(ptr) Variable Function
         84(v19):     30(ptr) Variable Function
              12:    7(ivec3) Load 11(gl_LaunchIDEXT)
                              Store 9(v0) 12
              15:    7(ivec3) Load 14(gl_LaunchSizeEXT)
                              Store 13(v1) 15
              21:     16(int) Load 20(gl_PrimitiveID)
                              Store 18(v2) 21
              24:     16(int) Load 23(gl_InstanceID)
                              Store 22(v3) 24
              27:     16(int) Load 26(gl_InstanceCustomIndexEXT)
                              Store 25(v4) 27
              34:   29(fvec3) Load 33(gl_WorldRayOriginEXT)
                              Store 31(v5) 34
              37:   29(fvec3) Load 36(gl_WorldRayDirectionEXT)
                              Store 35(v6) 37
              40:   29(fvec3) Load 39(gl_ObjectRayOriginEXT)
                              Store 38(v7) 40
              43:   29(fvec3) Load 42(gl_ObjectRayDirectionEXT)
                              Store 41(v8) 43
              48:   28(float) Load 47(gl_RayTminEXT)
                              Store 45(v9) 48
              51:   28(float) Load 50(gl_RayTmaxEXT)
                              Store 49(v10) 51
              54:   28(float) Load 53(gl_HitTEXT)
                              Store 52(v11) 54
              59:      6(int) Load 58(gl_HitKindEXT)
                              Store 56(v12) 59
              65:          60 Load 64(gl_ObjectToWorldEXT)
                              Store 62(v13) 65
              68:          60 Load 67(gl_WorldToObjectEXT)
                              Store 66(v14) 68
              71:     16(int) Load 70(gl_GeometryIndexEXT)
                              Store 69(v15) 71
              76:          60 Load 64(gl_ObjectToWorldEXT)
              77:          73 Transpose 76
                              Store 75(v16) 77
              79:          60 Load 67(gl_WorldToObjectEXT)
              80:          73 Transpose 79
                              Store 78(v17) 80
              83:      6(int) Load 82(gl_CullMaskEXT)
                              Store 81(v18) 83
              90:     32(ptr) AccessChain 88(gl_HitTriangleVertexPositionsEXT) 89
              91:   29(fvec3) Load 90
                              Store 84(v19) 91
                              Store 93(incomingPayload) 95
              96:     16(int) Load 18(v2)
              99:    98(bool) IEqual 96 97
                              SelectionMerge 101 None
                              BranchConditional 99 100 101
             100:               Label
                                IgnoreIntersectionKHR
             101:             Label
             108:      6(int) Load 107(gl_SubgroupSize)
             109:   28(float) ConvertUToF 108
             111:    110(ptr) AccessChain 93(incomingPayload) 103
             112:   28(float) Load 111
             113:   28(float) FAdd 112 109
             114:    110(ptr) AccessChain 93(incomingPayload) 103
                              Store 114 113
                              TerminateRayKHR
                              FunctionEnd
