spv.AnyHitShader.rahit
// Module Version 10000
// Generated by (magic number): 8000a
// 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 HitTNV
                              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
                                IgnoreIntersectionNV
                                Branch 79
              80:               Label
                                TerminateRayNV
                                Branch 79
              79:             Label
                              Return
                              FunctionEnd
