spv.bufferhandle6.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 165

                              Capability Shader
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint Fragment 4  "main" 154
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 8  "accum"
                              Name 15  "T1"
                              MemberName 15(T1) 0  "a"
                              MemberName 15(T1) 1  "b"
                              MemberName 15(T1) 2  "c"
                              MemberName 15(T1) 3  "d"
                              Name 18  "T1"
                              MemberName 18(T1) 0  "a"
                              MemberName 18(T1) 1  "b"
                              MemberName 18(T1) 2  "c"
                              MemberName 18(T1) 3  "d"
                              Name 21  "x"
                              Name 30  "Block"
                              MemberName 30(Block) 0  "identity"
                              Name 32  "pc"
                              Name 136  "color"
                              Name 149  "image0_0"
                              Name 154  "gl_FragCoord"
                              Decorate 12 ArrayStride 4
                              Decorate 14 ArrayStride 8
                              MemberDecorate 15(T1) 0 Offset 0
                              MemberDecorate 15(T1) 1 Offset 32
                              MemberDecorate 15(T1) 2 Offset 48
                              MemberDecorate 15(T1) 3 Offset 80
                              Decorate 15(T1) Block
                              Decorate 16 ArrayStride 4
                              Decorate 17 ArrayStride 8
                              MemberDecorate 18(T1) 0 Offset 0
                              MemberDecorate 18(T1) 1 Offset 32
                              MemberDecorate 18(T1) 2 Offset 48
                              MemberDecorate 18(T1) 3 Offset 80
                              Decorate 18(T1) Block
                              Decorate 19 ArrayStride 8
                              Decorate 21(x) DescriptorSet 3
                              Decorate 21(x) Binding 1
                              Decorate 29 ArrayStride 4
                              MemberDecorate 30(Block) 0 Offset 0
                              Decorate 30(Block) Block
                              Decorate 149(image0_0) DescriptorSet 3
                              Decorate 149(image0_0) Binding 0
                              Decorate 154(gl_FragCoord) BuiltIn FragCoord
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 0
              10:             TypeInt 32 0
              11:     10(int) Constant 2
              12:             TypeArray 6(int) 11
                              TypeForwardPointer 13 PhysicalStorageBufferEXT
              14:             TypeArray 13 11
          15(T1):             TypeStruct 12 6(int) 14 13
              16:             TypeArray 6(int) 11
              17:             TypeArray 13 11
          18(T1):             TypeStruct 16 6(int) 17 13
              13:             TypePointer PhysicalStorageBufferEXT 18(T1)
              19:             TypeArray 13(ptr) 11
              20:             TypePointer StorageBuffer 15(T1)
           21(x):     20(ptr) Variable StorageBuffer
              22:             TypePointer StorageBuffer 6(int)
              28:     10(int) Constant 32
              29:             TypeArray 6(int) 28
       30(Block):             TypeStruct 29
              31:             TypePointer PushConstant 30(Block)
          32(pc):     31(ptr) Variable PushConstant
              33:      6(int) Constant 1
              34:             TypePointer PushConstant 6(int)
              44:      6(int) Constant 2
              48:             TypePointer StorageBuffer 13(ptr)
              51:             TypePointer PhysicalStorageBufferEXT 6(int)
              54:      6(int) Constant 3
              64:      6(int) Constant 4
              72:      6(int) Constant 5
              82:      6(int) Constant 6
              94:      6(int) Constant 7
             104:      6(int) Constant 8
             112:      6(int) Constant 9
             122:      6(int) Constant 10
             130:      6(int) Constant 11
             134:             TypeVector 10(int) 4
             135:             TypePointer Function 134(ivec4)
             138:             TypeBool
             140:     10(int) Constant 0
             141:  134(ivec4) ConstantComposite 140 140 140 140
             142:     10(int) Constant 1
             143:  134(ivec4) ConstantComposite 142 140 140 142
             144:             TypeVector 138(bool) 4
             147:             TypeImage 10(int) 2D nonsampled format:R32ui
             148:             TypePointer UniformConstant 147
   149(image0_0):    148(ptr) Variable UniformConstant
             151:             TypeFloat 32
             152:             TypeVector 151(float) 4
             153:             TypePointer Input 152(fvec4)
154(gl_FragCoord):    153(ptr) Variable Input
             155:             TypePointer Input 151(float)
             162:             TypeVector 6(int) 2
         4(main):           2 Function None 3
               5:             Label
        8(accum):      7(ptr) Variable Function
      136(color):    135(ptr) Variable Function
                              Store 8(accum) 9
              23:     22(ptr) AccessChain 21(x) 9 9
              24:      6(int) Load 23
              25:      6(int) ISub 24 9
              26:      6(int) Load 8(accum)
              27:      6(int) BitwiseOr 26 25
                              Store 8(accum) 27
              35:     34(ptr) AccessChain 32(pc) 9 33
              36:      6(int) Load 35
              37:     22(ptr) AccessChain 21(x) 9 36
              38:      6(int) Load 37
              39:      6(int) ISub 38 33
              40:      6(int) Load 8(accum)
              41:      6(int) BitwiseOr 40 39
                              Store 8(accum) 41
              42:     22(ptr) AccessChain 21(x) 33
              43:      6(int) Load 42
              45:      6(int) ISub 43 44
              46:      6(int) Load 8(accum)
              47:      6(int) BitwiseOr 46 45
                              Store 8(accum) 47
              49:     48(ptr) AccessChain 21(x) 44 9
              50:     13(ptr) Load 49
              52:     51(ptr) AccessChain 50 9 9
              53:      6(int) Load 52 Aligned 4
              55:      6(int) ISub 53 54
              56:      6(int) Load 8(accum)
              57:      6(int) BitwiseOr 56 55
                              Store 8(accum) 57
              58:     48(ptr) AccessChain 21(x) 44 9
              59:     13(ptr) Load 58
              60:     34(ptr) AccessChain 32(pc) 9 33
              61:      6(int) Load 60
              62:     51(ptr) AccessChain 59 9 61
              63:      6(int) Load 62 Aligned 4
              65:      6(int) ISub 63 64
              66:      6(int) Load 8(accum)
              67:      6(int) BitwiseOr 66 65
                              Store 8(accum) 67
              68:     48(ptr) AccessChain 21(x) 44 9
              69:     13(ptr) Load 68
              70:     51(ptr) AccessChain 69 33
              71:      6(int) Load 70 Aligned 16
              73:      6(int) ISub 71 72
              74:      6(int) Load 8(accum)
              75:      6(int) BitwiseOr 74 73
                              Store 8(accum) 75
              76:     34(ptr) AccessChain 32(pc) 9 33
              77:      6(int) Load 76
              78:     48(ptr) AccessChain 21(x) 44 77
              79:     13(ptr) Load 78
              80:     51(ptr) AccessChain 79 9 9
              81:      6(int) Load 80 Aligned 4
              83:      6(int) ISub 81 82
              84:      6(int) Load 8(accum)
              85:      6(int) BitwiseOr 84 83
                              Store 8(accum) 85
              86:     34(ptr) AccessChain 32(pc) 9 33
              87:      6(int) Load 86
              88:     48(ptr) AccessChain 21(x) 44 87
              89:     13(ptr) Load 88
              90:     34(ptr) AccessChain 32(pc) 9 33
              91:      6(int) Load 90
              92:     51(ptr) AccessChain 89 9 91
              93:      6(int) Load 92 Aligned 4
              95:      6(int) ISub 93 94
              96:      6(int) Load 8(accum)
              97:      6(int) BitwiseOr 96 95
                              Store 8(accum) 97
              98:     34(ptr) AccessChain 32(pc) 9 33
              99:      6(int) Load 98
             100:     48(ptr) AccessChain 21(x) 44 99
             101:     13(ptr) Load 100
             102:     51(ptr) AccessChain 101 33
             103:      6(int) Load 102 Aligned 16
             105:      6(int) ISub 103 104
             106:      6(int) Load 8(accum)
             107:      6(int) BitwiseOr 106 105
                              Store 8(accum) 107
             108:     48(ptr) AccessChain 21(x) 54
             109:     13(ptr) Load 108
             110:     51(ptr) AccessChain 109 9 9
             111:      6(int) Load 110 Aligned 4
             113:      6(int) ISub 111 112
             114:      6(int) Load 8(accum)
             115:      6(int) BitwiseOr 114 113
                              Store 8(accum) 115
             116:     48(ptr) AccessChain 21(x) 54
             117:     13(ptr) Load 116
             118:     34(ptr) AccessChain 32(pc) 9 33
             119:      6(int) Load 118
             120:     51(ptr) AccessChain 117 9 119
             121:      6(int) Load 120 Aligned 4
             123:      6(int) ISub 121 122
             124:      6(int) Load 8(accum)
             125:      6(int) BitwiseOr 124 123
                              Store 8(accum) 125
             126:     48(ptr) AccessChain 21(x) 54
             127:     13(ptr) Load 126
             128:     51(ptr) AccessChain 127 33
             129:      6(int) Load 128 Aligned 16
             131:      6(int) ISub 129 130
             132:      6(int) Load 8(accum)
             133:      6(int) BitwiseOr 132 131
                              Store 8(accum) 133
             137:      6(int) Load 8(accum)
             139:   138(bool) INotEqual 137 9
             145:  144(bvec4) CompositeConstruct 139 139 139 139
             146:  134(ivec4) Select 145 141 143
                              Store 136(color) 146
             150:         147 Load 149(image0_0)
             156:    155(ptr) AccessChain 154(gl_FragCoord) 140
             157:  151(float) Load 156
             158:      6(int) ConvertFToS 157
             159:    155(ptr) AccessChain 154(gl_FragCoord) 142
             160:  151(float) Load 159
             161:      6(int) ConvertFToS 160
             163:  162(ivec2) CompositeConstruct 158 161
             164:  134(ivec4) Load 136(color)
                              ImageWrite 150 163 164
                              Return
                              FunctionEnd
