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 AnyHitNV 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 LaunchIdNV
                              Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV
                              Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
                              Decorate 23(gl_InstanceID) BuiltIn InstanceId
                              Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV
                              Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV
                              Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV
                              Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV
                              Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV
                              Decorate 47(gl_RayTminNV) BuiltIn RayTminNV
                              Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV
                              Decorate 53(gl_HitTNV) BuiltIn HitTNV
                              Decorate 58(gl_HitKindNV) BuiltIn HitKindNV
                              Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV
                              Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectNV
                              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 IncomingRayPayloadNV 69(fvec4)
71(incomingPayload):     70(ptr) Variable IncomingRayPayloadNV
              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
