spv.subpass.frag
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 67

                              Capability Shader
                              Capability StorageImageMultisample
                              Capability InputAttachment
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 15 27 53
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 11  "foo(iIPM1;"
                              Name 10  "sb"
                              Name 15  "icolor"
                              Name 27  "color"
                              Name 30  "sub"
                              Name 35  "subMS"
                              Name 42  "isub"
                              Name 45  "isubMS"
                              Name 53  "ucolor"
                              Name 56  "usub"
                              Name 61  "usubMS"
                              Decorate 30(sub) DescriptorSet 0
                              Decorate 30(sub) InputAttachmentIndex 1
                              Decorate 35(subMS) DescriptorSet 0
                              Decorate 35(subMS) InputAttachmentIndex 2
                              Decorate 42(isub) DescriptorSet 0
                              Decorate 42(isub) InputAttachmentIndex 3
                              Decorate 45(isubMS) DescriptorSet 0
                              Decorate 45(isubMS) InputAttachmentIndex 4
                              Decorate 56(usub) DescriptorSet 0
                              Decorate 56(usub) InputAttachmentIndex 5
                              Decorate 61(usubMS) DescriptorSet 0
                              Decorate 61(usubMS) InputAttachmentIndex 6
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown
               8:             TypePointer UniformConstant 7
               9:             TypeFunction 2 8(ptr)
              13:             TypeVector 6(int) 4
              14:             TypePointer Output 13(ivec4)
      15(icolor):     14(ptr) Variable Output
              17:      6(int) Constant 3
              18:      6(int) Constant 0
              19:             TypeVector 6(int) 2
              20:   19(ivec2) ConstantComposite 18 18
              24:             TypeFloat 32
              25:             TypeVector 24(float) 4
              26:             TypePointer Output 25(fvec4)
       27(color):     26(ptr) Variable Output
              28:             TypeImage 24(float) SubpassData nonsampled format:Unknown
              29:             TypePointer UniformConstant 28
         30(sub):     29(ptr) Variable UniformConstant
              33:             TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown
              34:             TypePointer UniformConstant 33
       35(subMS):     34(ptr) Variable UniformConstant
              40:             TypeImage 6(int) SubpassData nonsampled format:Unknown
              41:             TypePointer UniformConstant 40
        42(isub):     41(ptr) Variable UniformConstant
      45(isubMS):      8(ptr) Variable UniformConstant
              50:             TypeInt 32 0
              51:             TypeVector 50(int) 4
              52:             TypePointer Output 51(ivec4)
      53(ucolor):     52(ptr) Variable Output
              54:             TypeImage 50(int) SubpassData nonsampled format:Unknown
              55:             TypePointer UniformConstant 54
        56(usub):     55(ptr) Variable UniformConstant
              59:             TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown
              60:             TypePointer UniformConstant 59
      61(usubMS):     60(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
              31:          28 Load 30(sub)
              32:   25(fvec4) ImageRead 31 20
                              Store 27(color) 32
              36:          33 Load 35(subMS)
              37:   25(fvec4) ImageRead 36 20 Sample 17
              38:   25(fvec4) Load 27(color)
              39:   25(fvec4) FAdd 38 37
                              Store 27(color) 39
              43:          40 Load 42(isub)
              44:   13(ivec4) ImageRead 43 20
                              Store 15(icolor) 44
              46:           7 Load 45(isubMS)
              47:   13(ivec4) ImageRead 46 20 Sample 17
              48:   13(ivec4) Load 15(icolor)
              49:   13(ivec4) IAdd 48 47
                              Store 15(icolor) 49
              57:          54 Load 56(usub)
              58:   51(ivec4) ImageRead 57 20
                              Store 53(ucolor) 58
              62:          59 Load 61(usubMS)
              63:   51(ivec4) ImageRead 62 20 Sample 17
              64:   51(ivec4) Load 53(ucolor)
              65:   51(ivec4) IAdd 64 63
                              Store 53(ucolor) 65
              66:           2 FunctionCall 11(foo(iIPM1;) 45(isubMS)
                              Return
                              FunctionEnd
  11(foo(iIPM1;):           2 Function None 9
          10(sb):      8(ptr) FunctionParameter
              12:             Label
              16:           7 Load 10(sb)
              21:   13(ivec4) ImageRead 16 20 Sample 17
              22:   13(ivec4) Load 15(icolor)
              23:   13(ivec4) IAdd 22 21
                              Store 15(icolor) 23
                              Return
                              FunctionEnd
