spv.shaderFragMaskAMD.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 80

                              Capability Shader
                              Capability InputAttachment
                              Capability FragmentMaskAMD
                              Extension  "SPV_AMD_shader_fragment_mask"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 78
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_AMD_shader_fragment_mask"
                              Name 4  "main"
                              Name 9  "f4"
                              Name 14  "fragMask"
                              Name 18  "s2DMS"
                              Name 27  "fragIndex"
                              Name 42  "is2DMSArray"
                              Name 62  "usubpassMS"
                              Name 78  "fragColor"
                              Decorate 18(s2DMS) DescriptorSet 0
                              Decorate 18(s2DMS) Binding 0
                              Decorate 42(is2DMSArray) DescriptorSet 0
                              Decorate 42(is2DMSArray) Binding 1
                              Decorate 62(usubpassMS) DescriptorSet 0
                              Decorate 62(usubpassMS) Binding 2
                              Decorate 62(usubpassMS) InputAttachmentIndex 0
                              Decorate 78(fragColor) Location 0
               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 0
              13:             TypePointer Function 12(int)
              15:             TypeImage 6(float) 2D multi-sampled sampled format:Unknown
              16:             TypeSampledImage 15
              17:             TypePointer UniformConstant 16
       18(s2DMS):     17(ptr) Variable UniformConstant
              20:             TypeInt 32 1
              21:             TypeVector 20(int) 2
              22:     20(int) Constant 2
              23:     20(int) Constant 3
              24:   21(ivec2) ConstantComposite 22 23
              29:     12(int) Constant 240
              31:     20(int) Constant 4
              34:     12(int) Constant 1
              39:             TypeImage 20(int) 2D array multi-sampled sampled format:Unknown
              40:             TypeSampledImage 39
              41:             TypePointer UniformConstant 40
 42(is2DMSArray):     41(ptr) Variable UniformConstant
              44:             TypeVector 20(int) 3
              45:     20(int) Constant 1
              46:   44(ivec3) ConstantComposite 22 23 45
              55:             TypeVector 20(int) 4
              60:             TypeImage 12(int) SubpassData multi-sampled nonsampled format:Unknown
              61:             TypePointer UniformConstant 60
  62(usubpassMS):     61(ptr) Variable UniformConstant
              64:     20(int) Constant 0
              65:   21(ivec2) ConstantComposite 64 64
              72:             TypeVector 12(int) 4
              77:             TypePointer Output 7(fvec4)
   78(fragColor):     77(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           9(f4):      8(ptr) Variable Function
    14(fragMask):     13(ptr) Variable Function
   27(fragIndex):     13(ptr) Variable Function
                              Store 9(f4) 11
              19:          16 Load 18(s2DMS)
              25:          15 Image 19
              26:     12(int) FragmentMaskFetchAMD 25 24
                              Store 14(fragMask) 26
              28:     12(int) Load 14(fragMask)
              30:     12(int) BitwiseAnd 28 29
              32:     12(int) ShiftRightLogical 30 31
                              Store 27(fragIndex) 32
              33:          16 Load 18(s2DMS)
              35:          15 Image 33
              36:    7(fvec4) FragmentFetchAMD 35 24 34
              37:    7(fvec4) Load 9(f4)
              38:    7(fvec4) FAdd 37 36
                              Store 9(f4) 38
              43:          40 Load 42(is2DMSArray)
              47:          39 Image 43
              48:     12(int) FragmentMaskFetchAMD 47 46
                              Store 14(fragMask) 48
              49:     12(int) Load 14(fragMask)
              50:     12(int) BitwiseAnd 49 29
              51:     12(int) ShiftRightLogical 50 31
                              Store 27(fragIndex) 51
              52:          40 Load 42(is2DMSArray)
              53:     12(int) Load 27(fragIndex)
              54:          39 Image 52
              56:   55(ivec4) FragmentFetchAMD 54 46 53
              57:    7(fvec4) ConvertSToF 56
              58:    7(fvec4) Load 9(f4)
              59:    7(fvec4) FAdd 58 57
                              Store 9(f4) 59
              63:          60 Load 62(usubpassMS)
              66:     12(int) FragmentMaskFetchAMD 63 65
                              Store 14(fragMask) 66
              67:     12(int) Load 14(fragMask)
              68:     12(int) BitwiseAnd 67 29
              69:     12(int) ShiftRightLogical 68 31
                              Store 27(fragIndex) 69
              70:          60 Load 62(usubpassMS)
              71:     12(int) Load 27(fragIndex)
              73:   72(ivec4) FragmentFetchAMD 70 65 71
              74:    7(fvec4) ConvertUToF 73
              75:    7(fvec4) Load 9(f4)
              76:    7(fvec4) FAdd 75 74
                              Store 9(f4) 76
              79:    7(fvec4) Load 9(f4)
                              Store 78(fragColor) 79
                              Return
                              FunctionEnd
