spv.AnyHitShader.rahit
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 81

                              Capability RayTracingNV
                              Extension  "SPV_NV_ray_tracing"
               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
                              Source GLSL 460
                              SourceExtension  "GL_NV_ray_tracing"
                              Name 4  "main"
                              Name 9  "v0"
                              Name 11  "gl_LaunchIDNV"
                              Name 13  "v1"
                              Name 14  "gl_LaunchSizeNV"
                              Name 18  "v2"
                              Name 20  "gl_PrimitiveID"
                              Name 22  "v3"
                              Name 23  "gl_InstanceID"
                              Name 25  "v4"
                              Name 26  "gl_InstanceCustomIndexNV"
                              Name 31  "v5"
                              Name 33  "gl_WorldRayOriginNV"
                              Name 35  "v6"
                              Name 36  "gl_WorldRayDirectionNV"
                              Name 38  "v7"
                              Name 39  "gl_ObjectRayOriginNV"
                              Name 41  "v8"
                              Name 42  "gl_ObjectRayDirectionNV"
                              Name 45  "v9"
                              Name 47  "gl_RayTminNV"
                              Name 49  "v10"
                              Name 50  "gl_RayTmaxNV"
                              Name 52  "v11"
                              Name 53  "gl_HitTNV"
                              Name 56  "v12"
                              Name 58  "gl_HitKindNV"
                              Name 62  "v13"
                              Name 64  "gl_ObjectToWorldNV"
                              Name 66  "v14"
                              Name 67  "gl_WorldToObjectNV"
                              Name 71  "incomingPayload"
                              Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                              Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                              Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 23(gl_InstanceID) BuiltIn InstanceId
                              Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexKHR
                              Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginKHR
                              Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionKHR
                              Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginKHR
                              Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR
                              Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR
                              Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR
                              Decorate 53(gl_HitTNV) BuiltIn HitTKHR
                              Decorate 58(gl_HitKindNV) BuiltIn HitKindKHR
                              Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR
                              Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR
                              Decorate 71(incomingPayload) Location 1
               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_LaunchIDNV):     10(ptr) Variable Input
14(gl_LaunchSizeNV):     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_InstanceCustomIndexNV):     19(ptr) Variable Input
              28:             TypeFloat 32
              29:             TypeVector 28(float) 3
              30:             TypePointer Function 29(fvec3)
              32:             TypePointer Input 29(fvec3)
33(gl_WorldRayOriginNV):     32(ptr) Variable Input
36(gl_WorldRayDirectionNV):     32(ptr) Variable Input
39(gl_ObjectRayOriginNV):     32(ptr) Variable Input
42(gl_ObjectRayDirectionNV):     32(ptr) Variable Input
              44:             TypePointer Function 28(float)
              46:             TypePointer Input 28(float)
47(gl_RayTminNV):     46(ptr) Variable Input
50(gl_RayTmaxNV):     46(ptr) Variable Input
   53(gl_HitTNV):     46(ptr) Variable Input
              55:             TypePointer Function 6(int)
              57:             TypePointer Input 6(int)
58(gl_HitKindNV):     57(ptr) Variable Input
              60:             TypeMatrix 29(fvec3) 4
              61:             TypePointer Function 60
              63:             TypePointer Input 60
64(gl_ObjectToWorldNV):     63(ptr) Variable Input
67(gl_WorldToObjectNV):     63(ptr) Variable Input
              69:             TypeVector 28(float) 4
              70:             TypePointer IncomingRayPayloadKHR 69(fvec4)
71(incomingPayload):     70(ptr) Variable IncomingRayPayloadKHR
              72:   28(float) Constant 1056964608
              73:   69(fvec4) ConstantComposite 72 72 72 72
              75:     16(int) Constant 1
              76:             TypeBool
         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
              12:    7(ivec3) Load 11(gl_LaunchIDNV)
                              Store 9(v0) 12
              15:    7(ivec3) Load 14(gl_LaunchSizeNV)
                              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_InstanceCustomIndexNV)
                              Store 25(v4) 27
              34:   29(fvec3) Load 33(gl_WorldRayOriginNV)
                              Store 31(v5) 34
              37:   29(fvec3) Load 36(gl_WorldRayDirectionNV)
                              Store 35(v6) 37
              40:   29(fvec3) Load 39(gl_ObjectRayOriginNV)
                              Store 38(v7) 40
              43:   29(fvec3) Load 42(gl_ObjectRayDirectionNV)
                              Store 41(v8) 43
              48:   28(float) Load 47(gl_RayTminNV)
                              Store 45(v9) 48
              51:   28(float) Load 50(gl_RayTmaxNV)
                              Store 49(v10) 51
              54:   28(float) Load 53(gl_HitTNV)
                              Store 52(v11) 54
              59:      6(int) Load 58(gl_HitKindNV)
                              Store 56(v12) 59
              65:          60 Load 64(gl_ObjectToWorldNV)
                              Store 62(v13) 65
              68:          60 Load 67(gl_WorldToObjectNV)
                              Store 66(v14) 68
                              Store 71(incomingPayload) 73
              74:     16(int) Load 18(v2)
              77:    76(bool) IEqual 74 75
                              SelectionMerge 79 None
                              BranchConditional 77 78 80
              78:               Label
                                IgnoreIntersectionKHR
                                Branch 79
              80:               Label
                                TerminateRayKHR
                                Branch 79
              79:             Label
                              Return
                              FunctionEnd
