spv.double.comp
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 60

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 26 33
                              ExecutionMode 4 LocalSize 1 1 1
                              Source GLSL 430
                              Name 4  "main"
                              Name 8  "bufName"
                              MemberName 8(bufName) 0  "f"
                              MemberName 8(bufName) 1  "d"
                              Name 10  "bufInst"
                              Name 22  "storePos"
                              Name 26  "gl_GlobalInvocationID"
                              Name 32  "localCoef"
                              Name 33  "gl_LocalInvocationID"
                              Name 49  "aa"
                              Name 54  "globalCoef"
                              Name 59  "destTex"
                              MemberDecorate 8(bufName) 0 Offset 0
                              MemberDecorate 8(bufName) 1 Offset 8
                              Decorate 8(bufName) BufferBlock
                              Decorate 10(bufInst) DescriptorSet 0
                              Decorate 10(bufInst) Binding 0
                              Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
                              Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 59(destTex) DescriptorSet 0
                              Decorate 59(destTex) Binding 0
                              Decorate 59(destTex) NonReadable
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeFloat 64
      8(bufName):             TypeStruct 6(float) 7(float64_t)
               9:             TypePointer Uniform 8(bufName)
     10(bufInst):      9(ptr) Variable Uniform
              11:             TypeInt 32 1
              12:     11(int) Constant 1
              13:7(float64_t) Constant 1413754136 1074340347
              14:             TypePointer Uniform 7(float64_t)
              16:     11(int) Constant 0
              17:    6(float) Constant 1095307129
              18:             TypePointer Uniform 6(float)
              20:             TypeVector 11(int) 2
              21:             TypePointer Function 20(ivec2)
              23:             TypeInt 32 0
              24:             TypeVector 23(int) 3
              25:             TypePointer Input 24(ivec3)
26(gl_GlobalInvocationID):     25(ptr) Variable Input
              27:             TypeVector 23(int) 2
              31:             TypePointer Function 7(float64_t)
33(gl_LocalInvocationID):     25(ptr) Variable Input
              37:     11(int) Constant 8
              40:             TypeVector 6(float) 2
              42:    6(float) Constant 1090519040
              47:             TypeVector 7(float64_t) 4
              48:             TypePointer Function 47(f64vec4)
              50:7(float64_t) Constant 2576980378 1071225241
              51:7(float64_t) Constant 2576980378 1070176665
              52:7(float64_t) Constant 858993459 1070805811
              53: 47(f64vec4) ConstantComposite 50 51 52 50
              55:7(float64_t) Constant 0 1072693248
              56:7(float64_t) Constant 3229815407 1074340298
              57:             TypeImage 6(float) 2D nonsampled format:Unknown
              58:             TypePointer UniformConstant 57
     59(destTex):     58(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
    22(storePos):     21(ptr) Variable Function
   32(localCoef):     31(ptr) Variable Function
          49(aa):     48(ptr) Variable Function
  54(globalCoef):     31(ptr) Variable Function
              15:     14(ptr) AccessChain 10(bufInst) 12
                              Store 15 13
              19:     18(ptr) AccessChain 10(bufInst) 16
                              Store 19 17
              28:   24(ivec3) Load 26(gl_GlobalInvocationID)
              29:   27(ivec2) VectorShuffle 28 28 0 1
              30:   20(ivec2) Bitcast 29
                              Store 22(storePos) 30
              34:   24(ivec3) Load 33(gl_LocalInvocationID)
              35:   27(ivec2) VectorShuffle 34 34 0 1
              36:   20(ivec2) Bitcast 35
              38:   20(ivec2) CompositeConstruct 37 37
              39:   20(ivec2) ISub 36 38
              41:   40(fvec2) ConvertSToF 39
              43:   40(fvec2) CompositeConstruct 42 42
              44:   40(fvec2) FDiv 41 43
              45:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 44
              46:7(float64_t) FConvert 45
                              Store 32(localCoef) 46
                              Store 49(aa) 53
                              Store 54(globalCoef) 55
                              Return
                              FunctionEnd
