rayQuery-no-cse.rgen
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 107

                              Capability RayQueryProvisionalKHR
                              Capability RayTracingNV
                              Extension  "SPV_KHR_ray_query"
                              Extension  "SPV_NV_ray_tracing"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint RayGenerationKHR 4  "main" 23 28
                              Source GLSL 460
                              SourceExtension  "GL_EXT_ray_query"
                              SourceExtension  "GL_NV_ray_tracing"
                              Name 4  "main"
                              Name 8  "launchIndex("
                              Name 14  "Ray"
                              MemberName 14(Ray) 0  "pos"
                              MemberName 14(Ray) 1  "tmin"
                              MemberName 14(Ray) 2  "dir"
                              MemberName 14(Ray) 3  "tmax"
                              Name 19  "doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;"
                              Name 17  "rayQuery"
                              Name 18  "ray"
                              Name 23  "gl_LaunchIDNV"
                              Name 28  "gl_LaunchSizeNV"
                              Name 50  "rtas"
                              Name 69  "index"
                              Name 71  "ray"
                              Name 72  "Ray"
                              MemberName 72(Ray) 0  "pos"
                              MemberName 72(Ray) 1  "tmin"
                              MemberName 72(Ray) 2  "dir"
                              MemberName 72(Ray) 3  "tmax"
                              Name 74  "Rays"
                              MemberName 74(Rays) 0  "rays"
                              Name 76  ""
                              Name 89  "rayQuery1"
                              Name 90  "param"
                              Name 103  "rayQuery2"
                              Name 104  "param"
                              Decorate 23(gl_LaunchIDNV) BuiltIn LaunchIdKHR
                              Decorate 28(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
                              Decorate 50(rtas) DescriptorSet 0
                              Decorate 50(rtas) Binding 0
                              MemberDecorate 72(Ray) 0 Offset 0
                              MemberDecorate 72(Ray) 1 Offset 12
                              MemberDecorate 72(Ray) 2 Offset 16
                              MemberDecorate 72(Ray) 3 Offset 28
                              Decorate 73 ArrayStride 32
                              MemberDecorate 74(Rays) 0 Offset 0
                              Decorate 74(Rays) BufferBlock
                              Decorate 76 DescriptorSet 0
                              Decorate 76 Binding 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeFunction 6(int)
              10:             TypeRayQueryProvisionalKHR
              11:             TypePointer Function 10
              12:             TypeFloat 32
              13:             TypeVector 12(float) 3
         14(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
              15:             TypePointer Function 14(Ray)
              16:             TypeFunction 2 11(ptr) 15(ptr)
              21:             TypeVector 6(int) 3
              22:             TypePointer Input 21(ivec3)
23(gl_LaunchIDNV):     22(ptr) Variable Input
              24:      6(int) Constant 2
              25:             TypePointer Input 6(int)
28(gl_LaunchSizeNV):     22(ptr) Variable Input
              29:      6(int) Constant 0
              33:      6(int) Constant 1
              48:             TypeAccelerationStructureKHR
              49:             TypePointer UniformConstant 48
        50(rtas):     49(ptr) Variable UniformConstant
              52:      6(int) Constant 16
              53:             TypeInt 32 1
              54:     53(int) Constant 0
              55:             TypePointer Function 13(fvec3)
              58:     53(int) Constant 1
              59:             TypePointer Function 12(float)
              62:     53(int) Constant 2
              65:     53(int) Constant 3
              68:             TypePointer Function 6(int)
         72(Ray):             TypeStruct 13(fvec3) 12(float) 13(fvec3) 12(float)
              73:             TypeRuntimeArray 72(Ray)
        74(Rays):             TypeStruct 73
              75:             TypePointer Uniform 74(Rays)
              76:     75(ptr) Variable Uniform
              78:             TypePointer Uniform 72(Ray)
              94:      6(int) Constant 32
         4(main):           2 Function None 3
               5:             Label
       69(index):     68(ptr) Variable Function
         71(ray):     15(ptr) Variable Function
   89(rayQuery1):     11(ptr) Variable Function
       90(param):     15(ptr) Variable Function
  103(rayQuery2):     11(ptr) Variable Function
      104(param):     15(ptr) Variable Function
              70:      6(int) FunctionCall 8(launchIndex()
                              Store 69(index) 70
              77:      6(int) Load 69(index)
              79:     78(ptr) AccessChain 76 54 77
              80:     72(Ray) Load 79
              81:   13(fvec3) CompositeExtract 80 0
              82:     55(ptr) AccessChain 71(ray) 54
                              Store 82 81
              83:   12(float) CompositeExtract 80 1
              84:     59(ptr) AccessChain 71(ray) 58
                              Store 84 83
              85:   13(fvec3) CompositeExtract 80 2
              86:     55(ptr) AccessChain 71(ray) 62
                              Store 86 85
              87:   12(float) CompositeExtract 80 3
              88:     59(ptr) AccessChain 71(ray) 65
                              Store 88 87
              91:     14(Ray) Load 71(ray)
                              Store 90(param) 91
              92:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 89(rayQuery1) 90(param)
              93:          48 Load 50(rtas)
              95:     55(ptr) AccessChain 71(ray) 54
              96:   13(fvec3) Load 95
              97:     59(ptr) AccessChain 71(ray) 58
              98:   12(float) Load 97
              99:     55(ptr) AccessChain 71(ray) 62
             100:   13(fvec3) Load 99
             101:     59(ptr) AccessChain 71(ray) 65
             102:   12(float) Load 101
                              RayQueryInitializeKHR 89(rayQuery1) 93 33 94 96 98 100 102
             105:     14(Ray) Load 71(ray)
                              Store 104(param) 105
             106:           2 FunctionCall 19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;) 103(rayQuery2) 104(param)
                              Return
                              FunctionEnd
 8(launchIndex():      6(int) Function None 7
               9:             Label
              26:     25(ptr) AccessChain 23(gl_LaunchIDNV) 24
              27:      6(int) Load 26
              30:     25(ptr) AccessChain 28(gl_LaunchSizeNV) 29
              31:      6(int) Load 30
              32:      6(int) IMul 27 31
              34:     25(ptr) AccessChain 28(gl_LaunchSizeNV) 33
              35:      6(int) Load 34
              36:      6(int) IMul 32 35
              37:     25(ptr) AccessChain 23(gl_LaunchIDNV) 33
              38:      6(int) Load 37
              39:     25(ptr) AccessChain 28(gl_LaunchSizeNV) 29
              40:      6(int) Load 39
              41:      6(int) IMul 38 40
              42:      6(int) IAdd 36 41
              43:     25(ptr) AccessChain 23(gl_LaunchIDNV) 29
              44:      6(int) Load 43
              45:      6(int) IAdd 42 44
                              ReturnValue 45
                              FunctionEnd
19(doInitialize(rq1;struct-Ray-vf3-f1-vf3-f11;):           2 Function None 16
    17(rayQuery):     11(ptr) FunctionParameter
         18(ray):     15(ptr) FunctionParameter
              20:             Label
              51:          48 Load 50(rtas)
              56:     55(ptr) AccessChain 18(ray) 54
              57:   13(fvec3) Load 56
              60:     59(ptr) AccessChain 18(ray) 58
              61:   12(float) Load 60
              63:     55(ptr) AccessChain 18(ray) 62
              64:   13(fvec3) Load 63
              66:     59(ptr) AccessChain 18(ray) 65
              67:   12(float) Load 66
                              RayQueryInitializeKHR 17(rayQuery) 51 29 52 57 61 64 67
                              Return
                              FunctionEnd
