spv.1.4.image.frag
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 104

                              Capability Shader
                              Capability StorageImageMultisample
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 26 30 40 52 64 77 89 100 103
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "v"
                              Name 15  "iv"
                              Name 21  "uv"
                              Name 26  "i2D"
                              Name 30  "ic2D"
                              Name 40  "ii2D"
                              Name 52  "ui2D"
                              Name 64  "i2DMS"
                              Name 77  "ii2DMS"
                              Name 89  "ui2DMS"
                              Name 100  "fragData"
                              Name 103  "value"
                              Decorate 26(i2D) DescriptorSet 0
                              Decorate 26(i2D) Binding 1
                              Decorate 30(ic2D) Flat
                              Decorate 30(ic2D) Location 0
                              Decorate 40(ii2D) DescriptorSet 0
                              Decorate 40(ii2D) Binding 12
                              Decorate 52(ui2D) DescriptorSet 0
                              Decorate 52(ui2D) Binding 12
                              Decorate 64(i2DMS) DescriptorSet 0
                              Decorate 64(i2DMS) Binding 9
                              Decorate 77(ii2DMS) DescriptorSet 0
                              Decorate 77(ii2DMS) Binding 13
                              Decorate 89(ui2DMS) DescriptorSet 0
                              Decorate 89(ui2DMS) Binding 13
                              Decorate 100(fragData) Location 0
                              Decorate 103(value) Flat
                              Decorate 103(value) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:    6(float) Constant 0
              11:    7(fvec4) ConstantComposite 10 10 10 10
              12:             TypeInt 32 1
              13:             TypeVector 12(int) 4
              14:             TypePointer Function 13(ivec4)
              16:     12(int) Constant 0
              17:   13(ivec4) ConstantComposite 16 16 16 16
              18:             TypeInt 32 0
              19:             TypeVector 18(int) 4
              20:             TypePointer Function 19(ivec4)
              22:     18(int) Constant 0
              23:   19(ivec4) ConstantComposite 22 22 22 22
              24:             TypeImage 6(float) 2D nonsampled format:Rgba32f
              25:             TypePointer UniformConstant 24
         26(i2D):     25(ptr) Variable UniformConstant
              28:             TypeVector 12(int) 2
              29:             TypePointer Input 28(ivec2)
        30(ic2D):     29(ptr) Variable Input
              38:             TypeImage 12(int) 2D nonsampled format:R32i
              39:             TypePointer UniformConstant 38
        40(ii2D):     39(ptr) Variable UniformConstant
              50:             TypeImage 18(int) 2D nonsampled format:R32ui
              51:             TypePointer UniformConstant 50
        52(ui2D):     51(ptr) Variable UniformConstant
              62:             TypeImage 6(float) 2D multi-sampled nonsampled format:Rgba32f
              63:             TypePointer UniformConstant 62
       64(i2DMS):     63(ptr) Variable UniformConstant
              67:     12(int) Constant 1
              73:     12(int) Constant 2
              75:             TypeImage 12(int) 2D multi-sampled nonsampled format:R32i
              76:             TypePointer UniformConstant 75
      77(ii2DMS):     76(ptr) Variable UniformConstant
              87:             TypeImage 18(int) 2D multi-sampled nonsampled format:R32ui
              88:             TypePointer UniformConstant 87
      89(ui2DMS):     88(ptr) Variable UniformConstant
              99:             TypePointer Output 7(fvec4)
   100(fragData):     99(ptr) Variable Output
             102:             TypePointer Input 18(int)
      103(value):    102(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
            9(v):      8(ptr) Variable Function
          15(iv):     14(ptr) Variable Function
          21(uv):     20(ptr) Variable Function
                              Store 9(v) 11
                              Store 15(iv) 17
                              Store 21(uv) 23
              27:          24 Load 26(i2D)
              31:   28(ivec2) Load 30(ic2D)
              32:    7(fvec4) ImageRead 27 31
              33:    7(fvec4) Load 9(v)
              34:    7(fvec4) FAdd 33 32
                              Store 9(v) 34
              35:          24 Load 26(i2D)
              36:   28(ivec2) Load 30(ic2D)
              37:    7(fvec4) Load 9(v)
                              ImageWrite 35 36 37
              41:          38 Load 40(ii2D)
              42:   28(ivec2) Load 30(ic2D)
              43:   13(ivec4) ImageRead 41 42 SignExtend 
              44:    7(fvec4) ConvertSToF 43
              45:    7(fvec4) Load 9(v)
              46:    7(fvec4) FAdd 45 44
                              Store 9(v) 46
              47:          38 Load 40(ii2D)
              48:   28(ivec2) Load 30(ic2D)
              49:   13(ivec4) Load 15(iv)
                              ImageWrite 47 48 49 SignExtend 
              53:          50 Load 52(ui2D)
              54:   28(ivec2) Load 30(ic2D)
              55:   19(ivec4) ImageRead 53 54 ZeroExtend 
              56:    7(fvec4) ConvertUToF 55
              57:    7(fvec4) Load 9(v)
              58:    7(fvec4) FAdd 57 56
                              Store 9(v) 58
              59:          50 Load 52(ui2D)
              60:   28(ivec2) Load 30(ic2D)
              61:   19(ivec4) Load 21(uv)
                              ImageWrite 59 60 61 ZeroExtend 
              65:          62 Load 64(i2DMS)
              66:   28(ivec2) Load 30(ic2D)
              68:    7(fvec4) ImageRead 65 66 Sample 67
              69:    7(fvec4) Load 9(v)
              70:    7(fvec4) FAdd 69 68
                              Store 9(v) 70
              71:          62 Load 64(i2DMS)
              72:   28(ivec2) Load 30(ic2D)
              74:    7(fvec4) Load 9(v)
                              ImageWrite 71 72 74 Sample 73
              78:          75 Load 77(ii2DMS)
              79:   28(ivec2) Load 30(ic2D)
              80:   13(ivec4) ImageRead 78 79 Sample SignExtend 67
              81:    7(fvec4) ConvertSToF 80
              82:    7(fvec4) Load 9(v)
              83:    7(fvec4) FAdd 82 81
                              Store 9(v) 83
              84:          75 Load 77(ii2DMS)
              85:   28(ivec2) Load 30(ic2D)
              86:   13(ivec4) Load 15(iv)
                              ImageWrite 84 85 86 Sample SignExtend 73
              90:          87 Load 89(ui2DMS)
              91:   28(ivec2) Load 30(ic2D)
              92:   19(ivec4) ImageRead 90 91 Sample ZeroExtend 67
              93:    7(fvec4) ConvertUToF 92
              94:    7(fvec4) Load 9(v)
              95:    7(fvec4) FAdd 94 93
                              Store 9(v) 95
              96:          87 Load 89(ui2DMS)
              97:   28(ivec2) Load 30(ic2D)
              98:   19(ivec4) Load 21(uv)
                              ImageWrite 96 97 98 Sample ZeroExtend 73
             101:    7(fvec4) Load 9(v)
                              Store 100(fragData) 101
                              Return
                              FunctionEnd
