spv.ext.ClosestHitShader_Subgroup.rchit
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 67

                              Capability Int64
                              Capability GroupNonUniform
                              Capability GroupNonUniformBallot
                              Capability SubgroupBallotKHR
                              Capability RayTracingKHR
                              Capability VulkanMemoryModelKHR
                              Capability ShaderSMBuiltinsNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_KHR_shader_ballot"
                              Extension  "SPV_KHR_vulkan_memory_model"
                              Extension  "SPV_NV_shader_sm_builtins"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical VulkanKHR
                              EntryPoint ClosestHitKHR 4  "main" 8 26 28 34 43 48 53 61
                              Source GLSL 460
                              SourceExtension  "GL_ARB_shader_ballot"
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_NV_shader_sm_builtins"
                              Name 4  "main"
                              Name 8  "accEXT"
                              Name 26  "incomingPayload"
                              Name 28  "gl_SubgroupInvocationID"
                              Name 34  "gl_SubGroupGeMaskARB"
                              Name 43  "gl_SubgroupGtMask"
                              Name 48  "gl_SubgroupLeMask"
                              Name 53  "gl_SubGroupLtMaskARB"
                              Name 61  "gl_SMIDNV"
                              Decorate 8(accEXT) DescriptorSet 0
                              Decorate 8(accEXT) Binding 0
                              Decorate 28(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 28(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 29 RelaxedPrecision
                              Decorate 30 RelaxedPrecision
                              Decorate 34(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
                              Decorate 41 RelaxedPrecision
                              Decorate 42 RelaxedPrecision
                              Decorate 43(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
                              Decorate 46 RelaxedPrecision
                              Decorate 46 RelaxedPrecision
                              Decorate 47 RelaxedPrecision
                              Decorate 48(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
                              Decorate 51 RelaxedPrecision
                              Decorate 51 RelaxedPrecision
                              Decorate 52 RelaxedPrecision
                              Decorate 53(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
                              Decorate 59 RelaxedPrecision
                              Decorate 60 RelaxedPrecision
                              Decorate 61(gl_SMIDNV) BuiltIn SMIDNV
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeAccelerationStructureKHR
               7:             TypePointer UniformConstant 6
       8(accEXT):      7(ptr) Variable UniformConstant
              10:             TypeInt 32 0
              11:     10(int) Constant 0
              12:     10(int) Constant 1
              13:     10(int) Constant 2
              14:     10(int) Constant 3
              15:             TypeFloat 32
              16:             TypeVector 15(float) 3
              17:   15(float) Constant 1056964608
              18:   16(fvec3) ConstantComposite 17 17 17
              19:   15(float) Constant 1065353216
              20:   16(fvec3) ConstantComposite 19 19 19
              21:   15(float) Constant 1061158912
              22:             TypeInt 32 1
              23:     22(int) Constant 1
              24:             TypeVector 15(float) 4
              25:             TypePointer IncomingRayPayloadKHR 24(fvec4)
26(incomingPayload):     25(ptr) Variable IncomingRayPayloadKHR
              27:             TypePointer Input 10(int)
28(gl_SubgroupInvocationID):     27(ptr) Variable Input
              31:             TypeVector 10(int) 4
              32:             TypeInt 64 0
              33:             TypePointer Input 31(ivec4)
34(gl_SubGroupGeMaskARB):     33(ptr) Variable Input
              38:             TypeVector 10(int) 2
43(gl_SubgroupGtMask):     33(ptr) Variable Input
48(gl_SubgroupLeMask):     33(ptr) Variable Input
53(gl_SubGroupLtMaskARB):     33(ptr) Variable Input
   61(gl_SMIDNV):     27(ptr) Variable Input
              65:             TypePointer IncomingRayPayloadKHR 15(float)
         4(main):           2 Function None 3
               5:             Label
               9:           6 Load 8(accEXT)
                              TraceRayKHR 9 11 12 13 14 11 18 17 20 21 26(incomingPayload)
              29:     10(int) Load 28(gl_SubgroupInvocationID) Volatile 
              30:   15(float) ConvertUToF 29
              35:   31(ivec4) Load 34(gl_SubGroupGeMaskARB)
              36:     10(int) CompositeExtract 35 0
              37:     10(int) CompositeExtract 35 1
              39:   38(ivec2) CompositeConstruct 36 37
              40: 32(int64_t) Bitcast 39
              41:   15(float) ConvertUToF 40
              42:   15(float) FAdd 30 41
              44:   31(ivec4) Load 43(gl_SubgroupGtMask) Volatile 
              45:   24(fvec4) ConvertUToF 44
              46:   15(float) CompositeExtract 45 0
              47:   15(float) FAdd 42 46
              49:   31(ivec4) Load 48(gl_SubgroupLeMask) Volatile 
              50:   24(fvec4) ConvertUToF 49
              51:   15(float) CompositeExtract 50 0
              52:   15(float) FAdd 47 51
              54:   31(ivec4) Load 53(gl_SubGroupLtMaskARB)
              55:     10(int) CompositeExtract 54 0
              56:     10(int) CompositeExtract 54 1
              57:   38(ivec2) CompositeConstruct 55 56
              58: 32(int64_t) Bitcast 57
              59:   15(float) ConvertUToF 58
              60:   15(float) FAdd 52 59
              62:     10(int) Load 61(gl_SMIDNV) Volatile 
              63:   15(float) ConvertUToF 62
              64:   15(float) FAdd 60 63
              66:     65(ptr) AccessChain 26(incomingPayload) 11
                              Store 66 64
                              Return
                              FunctionEnd
