spv.AnyHitShaderMotion.rahit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 14

                              Capability RayTracingKHR
                              Capability RayTracingMotionBlurNV
                              Extension  "SPV_KHR_ray_tracing"
                              Extension  "SPV_NV_ray_tracing_motion_blur"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint AnyHitKHR 4  "main" 10
                              Source GLSL 460
                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
                              Name 4  "main"
                              Name 8  "time"
                              Name 10  "gl_CurrentRayTimeNV"
                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               9:             TypePointer Input 6(float)
10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
              12:    6(float) Constant 1056964608
         4(main):           2 Function None 3
               5:             Label
         8(time):      7(ptr) Variable Function
              11:    6(float) Load 10(gl_CurrentRayTimeNV)
              13:    6(float) FAdd 11 12
                              Store 8(time) 13
                              Return
                              FunctionEnd
