spv.nv.dmm-allops.rahit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 77

                              Capability RayTracingKHR
                              Capability CapabilityRayTracingDisplacementMicromapNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_NV_displacement_micromap"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint AnyHitKHR 4  "main" 12 18 40 59 64 67 76
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_query"
                              SourceExtension  "GL_EXT_ray_tracing"
                              SourceExtension  "GL_NV_displacement_micromap"
                              Name 4  "main"
                              Name 10  "block"
                              MemberName 10(block) 0  "op_pos"
                              MemberName 10(block) 1  "op_bary"
                              MemberName 10(block) 2  "op_hit"
                              Name 12  ""
                              Name 18  "gl_HitMicroTriangleVertexPositionsNV"
                              Name 40  "gl_HitMicroTriangleVertexBarycentricsNV"
                              Name 59  "gl_HitKindEXT"
                              Name 64  "gl_HitKindFrontFacingMicroTriangleNV"
                              Name 67  "gl_HitKindBackFacingMicroTriangleNV"
                              Name 76  "as"
                              MemberDecorate 10(block) 0 Offset 0
                              MemberDecorate 10(block) 1 Offset 16
                              MemberDecorate 10(block) 2 Offset 24
                              Decorate 10(block) Block
                              Decorate 12 DescriptorSet 0
                              Decorate 12 Binding 0
                              Decorate 18(gl_HitMicroTriangleVertexPositionsNV) BuiltIn HitMicroTriangleVertexPositionsNV
                              Decorate 40(gl_HitMicroTriangleVertexBarycentricsNV) BuiltIn HitMicroTriangleVertexBarycentricsNV
                              Decorate 59(gl_HitKindEXT) BuiltIn HitKindKHR
                              Decorate 64(gl_HitKindFrontFacingMicroTriangleNV) BuiltIn HitKindFrontFacingMicroTriangleNV
                              Decorate 67(gl_HitKindBackFacingMicroTriangleNV) BuiltIn HitKindBackFacingMicroTriangleNV
                              Decorate 76(as) DescriptorSet 0
                              Decorate 76(as) Binding 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypeVector 6(float) 2
               9:             TypeInt 32 0
       10(block):             TypeStruct 7(fvec3) 8(fvec2) 9(int)
              11:             TypePointer StorageBuffer 10(block)
              12:     11(ptr) Variable StorageBuffer
              13:             TypeInt 32 1
              14:     13(int) Constant 0
              15:      9(int) Constant 3
              16:             TypeArray 7(fvec3) 15
              17:             TypePointer Input 16
18(gl_HitMicroTriangleVertexPositionsNV):     17(ptr) Variable Input
              19:             TypePointer Input 7(fvec3)
              22:             TypePointer StorageBuffer 7(fvec3)
              24:     13(int) Constant 1
              31:     13(int) Constant 2
              38:             TypeArray 8(fvec2) 15
              39:             TypePointer Input 38
40(gl_HitMicroTriangleVertexBarycentricsNV):     39(ptr) Variable Input
              41:             TypePointer Input 8(fvec2)
              44:             TypePointer StorageBuffer 8(fvec2)
              58:             TypePointer Input 9(int)
59(gl_HitKindEXT):     58(ptr) Variable Input
              61:             TypePointer StorageBuffer 9(int)
              63:      9(int) Constant 255
64(gl_HitKindFrontFacingMicroTriangleNV):     58(ptr) Variable Input
67(gl_HitKindBackFacingMicroTriangleNV):     58(ptr) Variable Input
              74:             TypeAccelerationStructureKHR
              75:             TypePointer UniformConstant 74
          76(as):     75(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
              20:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 14
              21:    7(fvec3) Load 20
              23:     22(ptr) AccessChain 12 14
                              Store 23 21
              25:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 24
              26:    7(fvec3) Load 25
              27:     22(ptr) AccessChain 12 14
              28:    7(fvec3) Load 27
              29:    7(fvec3) FAdd 28 26
              30:     22(ptr) AccessChain 12 14
                              Store 30 29
              32:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 31
              33:    7(fvec3) Load 32
              34:     22(ptr) AccessChain 12 14
              35:    7(fvec3) Load 34
              36:    7(fvec3) FAdd 35 33
              37:     22(ptr) AccessChain 12 14
                              Store 37 36
              42:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 14
              43:    8(fvec2) Load 42
              45:     44(ptr) AccessChain 12 24
                              Store 45 43
              46:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 24
              47:    8(fvec2) Load 46
              48:     44(ptr) AccessChain 12 24
              49:    8(fvec2) Load 48
              50:    8(fvec2) FAdd 49 47
              51:     44(ptr) AccessChain 12 24
                              Store 51 50
              52:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 31
              53:    8(fvec2) Load 52
              54:     44(ptr) AccessChain 12 24
              55:    8(fvec2) Load 54
              56:    8(fvec2) FAdd 55 53
              57:     44(ptr) AccessChain 12 24
                              Store 57 56
              60:      9(int) Load 59(gl_HitKindEXT)
              62:     61(ptr) AccessChain 12 31
                              Store 62 60
              65:      9(int) Load 64(gl_HitKindFrontFacingMicroTriangleNV)
              66:      9(int) BitwiseOr 63 65
              68:      9(int) Load 67(gl_HitKindBackFacingMicroTriangleNV)
              69:      9(int) BitwiseOr 66 68
              70:     61(ptr) AccessChain 12 31
              71:      9(int) Load 70
              72:      9(int) BitwiseAnd 71 69
              73:     61(ptr) AccessChain 12 31
                              Store 73 72
                              Return
                              FunctionEnd
