; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 280
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability ImageQuery
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %250 "fragment_shader" %248
OpExecutionMode %250 OriginUpperLeft
OpName %21 "image_1d"
OpName %23 "image_2d"
OpName %25 "image_2d_array"
OpName %27 "image_3d"
OpName %29 "image_multisampled_2d"
OpName %31 "image_depth_2d"
OpName %33 "image_depth_2d_array"
OpName %35 "image_depth_multisampled_2d"
OpName %37 "image_storage_1d"
OpName %39 "image_storage_2d"
OpName %41 "image_storage_2d_array"
OpName %43 "image_storage_3d"
OpName %46 "coords"
OpName %47 "level"
OpName %48 "test_textureLoad_1d"
OpName %61 "coords"
OpName %62 "level"
OpName %63 "test_textureLoad_2d"
OpName %76 "coords"
OpName %77 "index"
OpName %78 "level"
OpName %79 "test_textureLoad_2d_array_u"
OpName %94 "coords"
OpName %95 "index"
OpName %96 "level"
OpName %97 "test_textureLoad_2d_array_s"
OpName %111 "coords"
OpName %112 "level"
OpName %113 "test_textureLoad_3d"
OpName %126 "coords"
OpName %127 "_sample"
OpName %128 "test_textureLoad_multisampled_2d"
OpName %140 "coords"
OpName %141 "level"
OpName %142 "test_textureLoad_depth_2d"
OpName %156 "coords"
OpName %157 "index"
OpName %158 "level"
OpName %159 "test_textureLoad_depth_2d_array_u"
OpName %175 "coords"
OpName %176 "index"
OpName %177 "level"
OpName %178 "test_textureLoad_depth_2d_array_s"
OpName %193 "coords"
OpName %194 "_sample"
OpName %195 "test_textureLoad_depth_multisampled_2d"
OpName %208 "coords"
OpName %209 "value"
OpName %210 "test_textureStore_1d"
OpName %215 "coords"
OpName %216 "value"
OpName %217 "test_textureStore_2d"
OpName %222 "coords"
OpName %223 "array_index"
OpName %224 "value"
OpName %225 "test_textureStore_2d_array_u"
OpName %232 "coords"
OpName %233 "array_index"
OpName %234 "value"
OpName %235 "test_textureStore_2d_array_s"
OpName %241 "coords"
OpName %242 "value"
OpName %243 "test_textureStore_3d"
OpName %250 "fragment_shader"
OpDecorate %21 DescriptorSet 0
OpDecorate %21 Binding 0
OpDecorate %23 DescriptorSet 0
OpDecorate %23 Binding 1
OpDecorate %25 DescriptorSet 0
OpDecorate %25 Binding 2
OpDecorate %27 DescriptorSet 0
OpDecorate %27 Binding 3
OpDecorate %29 DescriptorSet 0
OpDecorate %29 Binding 4
OpDecorate %31 DescriptorSet 0
OpDecorate %31 Binding 5
OpDecorate %33 DescriptorSet 0
OpDecorate %33 Binding 6
OpDecorate %35 DescriptorSet 0
OpDecorate %35 Binding 7
OpDecorate %37 NonReadable
OpDecorate %37 DescriptorSet 0
OpDecorate %37 Binding 8
OpDecorate %39 NonReadable
OpDecorate %39 DescriptorSet 0
OpDecorate %39 Binding 9
OpDecorate %41 NonReadable
OpDecorate %41 DescriptorSet 0
OpDecorate %41 Binding 10
OpDecorate %43 NonReadable
OpDecorate %43 DescriptorSet 0
OpDecorate %43 Binding 11
OpDecorate %248 Location 0
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeImage %4 1D 0 0 0 1 Unknown
%5 = OpTypeInt 32 1
%6 = OpTypeVector %4 4
%7 = OpTypeImage %4 2D 0 0 0 1 Unknown
%8 = OpTypeVector %5 2
%9 = OpTypeImage %4 2D 0 1 0 1 Unknown
%10 = OpTypeInt 32 0
%11 = OpTypeImage %4 3D 0 0 0 1 Unknown
%12 = OpTypeVector %5 3
%13 = OpTypeImage %4 2D 0 0 1 1 Unknown
%14 = OpTypeImage %4 2D 1 0 0 1 Unknown
%15 = OpTypeImage %4 2D 1 1 0 1 Unknown
%16 = OpTypeImage %4 2D 1 0 1 1 Unknown
%17 = OpTypeImage %4 1D 0 0 0 2 Rgba8
%18 = OpTypeImage %4 2D 0 0 0 2 Rgba8
%19 = OpTypeImage %4 2D 0 1 0 2 Rgba8
%20 = OpTypeImage %4 3D 0 0 0 2 Rgba8
%22 = OpTypePointer UniformConstant %3
%21 = OpVariable  %22  UniformConstant
%24 = OpTypePointer UniformConstant %7
%23 = OpVariable  %24  UniformConstant
%26 = OpTypePointer UniformConstant %9
%25 = OpVariable  %26  UniformConstant
%28 = OpTypePointer UniformConstant %11
%27 = OpVariable  %28  UniformConstant
%30 = OpTypePointer UniformConstant %13
%29 = OpVariable  %30  UniformConstant
%32 = OpTypePointer UniformConstant %14
%31 = OpVariable  %32  UniformConstant
%34 = OpTypePointer UniformConstant %15
%33 = OpVariable  %34  UniformConstant
%36 = OpTypePointer UniformConstant %16
%35 = OpVariable  %36  UniformConstant
%38 = OpTypePointer UniformConstant %17
%37 = OpVariable  %38  UniformConstant
%40 = OpTypePointer UniformConstant %18
%39 = OpVariable  %40  UniformConstant
%42 = OpTypePointer UniformConstant %19
%41 = OpVariable  %42  UniformConstant
%44 = OpTypePointer UniformConstant %20
%43 = OpVariable  %44  UniformConstant
%49 = OpTypeFunction %6 %5 %5
%53 = OpConstant  %5  1
%64 = OpTypeFunction %6 %8 %5
%71 = OpConstantComposite  %8  %53 %53
%80 = OpTypeFunction %6 %8 %10 %5
%89 = OpConstantComposite  %12  %53 %53 %53
%98 = OpTypeFunction %6 %8 %5 %5
%106 = OpConstantComposite  %12  %53 %53 %53
%114 = OpTypeFunction %6 %12 %5
%121 = OpConstantComposite  %12  %53 %53 %53
%135 = OpConstantComposite  %8  %53 %53
%143 = OpTypeFunction %4 %8 %5
%150 = OpConstantComposite  %8  %53 %53
%160 = OpTypeFunction %4 %8 %10 %5
%169 = OpConstantComposite  %12  %53 %53 %53
%179 = OpTypeFunction %4 %8 %5 %5
%187 = OpConstantComposite  %12  %53 %53 %53
%202 = OpConstantComposite  %8  %53 %53
%211 = OpTypeFunction %2 %5 %6
%218 = OpTypeFunction %2 %8 %6
%226 = OpTypeFunction %2 %8 %10 %6
%236 = OpTypeFunction %2 %8 %5 %6
%244 = OpTypeFunction %2 %12 %6
%249 = OpTypePointer Output %6
%248 = OpVariable  %249  Output
%251 = OpTypeFunction %2
%261 = OpConstant  %5  0
%262 = OpConstantNull  %8
%263 = OpConstant  %10  0
%264 = OpConstantNull  %12
%265 = OpConstantNull  %6
%266 = OpConstant  %4  0.0
%267 = OpConstantComposite  %6  %266 %266 %266 %266
%48 = OpFunction  %6  None %49
%46 = OpFunctionParameter  %5
%47 = OpFunctionParameter  %5
%45 = OpLabel
%50 = OpLoad  %3  %21
OpBranch %51
%51 = OpLabel
%52 = OpImageQueryLevels  %5  %50
%54 = OpISub  %5  %52 %53
%55 = OpExtInst  %5  %1 UMin %47 %54
%56 = OpImageQuerySizeLod  %5  %50 %55
%57 = OpISub  %5  %56 %53
%58 = OpExtInst  %5  %1 UMin %46 %57
%59 = OpImageFetch  %6  %50 %58 Lod %55
OpReturnValue %59
OpFunctionEnd
%63 = OpFunction  %6  None %64
%61 = OpFunctionParameter  %8
%62 = OpFunctionParameter  %5
%60 = OpLabel
%65 = OpLoad  %7  %23
OpBranch %66
%66 = OpLabel
%67 = OpImageQueryLevels  %5  %65
%68 = OpISub  %5  %67 %53
%69 = OpExtInst  %5  %1 UMin %62 %68
%70 = OpImageQuerySizeLod  %8  %65 %69
%72 = OpISub  %8  %70 %71
%73 = OpExtInst  %8  %1 UMin %61 %72
%74 = OpImageFetch  %6  %65 %73 Lod %69
OpReturnValue %74
OpFunctionEnd
%79 = OpFunction  %6  None %80
%76 = OpFunctionParameter  %8
%77 = OpFunctionParameter  %10
%78 = OpFunctionParameter  %5
%75 = OpLabel
%81 = OpLoad  %9  %25
OpBranch %82
%82 = OpLabel
%83 = OpBitcast  %5  %77
%84 = OpCompositeConstruct  %12  %76 %83
%85 = OpImageQueryLevels  %5  %81
%86 = OpISub  %5  %85 %53
%87 = OpExtInst  %5  %1 UMin %78 %86
%88 = OpImageQuerySizeLod  %12  %81 %87
%90 = OpISub  %12  %88 %89
%91 = OpExtInst  %12  %1 UMin %84 %90
%92 = OpImageFetch  %6  %81 %91 Lod %87
OpReturnValue %92
OpFunctionEnd
%97 = OpFunction  %6  None %98
%94 = OpFunctionParameter  %8
%95 = OpFunctionParameter  %5
%96 = OpFunctionParameter  %5
%93 = OpLabel
%99 = OpLoad  %9  %25
OpBranch %100
%100 = OpLabel
%101 = OpCompositeConstruct  %12  %94 %95
%102 = OpImageQueryLevels  %5  %99
%103 = OpISub  %5  %102 %53
%104 = OpExtInst  %5  %1 UMin %96 %103
%105 = OpImageQuerySizeLod  %12  %99 %104
%107 = OpISub  %12  %105 %106
%108 = OpExtInst  %12  %1 UMin %101 %107
%109 = OpImageFetch  %6  %99 %108 Lod %104
OpReturnValue %109
OpFunctionEnd
%113 = OpFunction  %6  None %114
%111 = OpFunctionParameter  %12
%112 = OpFunctionParameter  %5
%110 = OpLabel
%115 = OpLoad  %11  %27
OpBranch %116
%116 = OpLabel
%117 = OpImageQueryLevels  %5  %115
%118 = OpISub  %5  %117 %53
%119 = OpExtInst  %5  %1 UMin %112 %118
%120 = OpImageQuerySizeLod  %12  %115 %119
%122 = OpISub  %12  %120 %121
%123 = OpExtInst  %12  %1 UMin %111 %122
%124 = OpImageFetch  %6  %115 %123 Lod %119
OpReturnValue %124
OpFunctionEnd
%128 = OpFunction  %6  None %64
%126 = OpFunctionParameter  %8
%127 = OpFunctionParameter  %5
%125 = OpLabel
%129 = OpLoad  %13  %29
OpBranch %130
%130 = OpLabel
%131 = OpImageQuerySamples  %5  %129
%132 = OpISub  %5  %131 %53
%133 = OpExtInst  %5  %1 UMin %127 %132
%134 = OpImageQuerySize  %8  %129
%136 = OpISub  %8  %134 %135
%137 = OpExtInst  %8  %1 UMin %126 %136
%138 = OpImageFetch  %6  %129 %137 Sample %133
OpReturnValue %138
OpFunctionEnd
%142 = OpFunction  %4  None %143
%140 = OpFunctionParameter  %8
%141 = OpFunctionParameter  %5
%139 = OpLabel
%144 = OpLoad  %14  %31
OpBranch %145
%145 = OpLabel
%146 = OpImageQueryLevels  %5  %144
%147 = OpISub  %5  %146 %53
%148 = OpExtInst  %5  %1 UMin %141 %147
%149 = OpImageQuerySizeLod  %8  %144 %148
%151 = OpISub  %8  %149 %150
%152 = OpExtInst  %8  %1 UMin %140 %151
%153 = OpImageFetch  %6  %144 %152 Lod %148
%154 = OpCompositeExtract  %4  %153 0
OpReturnValue %154
OpFunctionEnd
%159 = OpFunction  %4  None %160
%156 = OpFunctionParameter  %8
%157 = OpFunctionParameter  %10
%158 = OpFunctionParameter  %5
%155 = OpLabel
%161 = OpLoad  %15  %33
OpBranch %162
%162 = OpLabel
%163 = OpBitcast  %5  %157
%164 = OpCompositeConstruct  %12  %156 %163
%165 = OpImageQueryLevels  %5  %161
%166 = OpISub  %5  %165 %53
%167 = OpExtInst  %5  %1 UMin %158 %166
%168 = OpImageQuerySizeLod  %12  %161 %167
%170 = OpISub  %12  %168 %169
%171 = OpExtInst  %12  %1 UMin %164 %170
%172 = OpImageFetch  %6  %161 %171 Lod %167
%173 = OpCompositeExtract  %4  %172 0
OpReturnValue %173
OpFunctionEnd
%178 = OpFunction  %4  None %179
%175 = OpFunctionParameter  %8
%176 = OpFunctionParameter  %5
%177 = OpFunctionParameter  %5
%174 = OpLabel
%180 = OpLoad  %15  %33
OpBranch %181
%181 = OpLabel
%182 = OpCompositeConstruct  %12  %175 %176
%183 = OpImageQueryLevels  %5  %180
%184 = OpISub  %5  %183 %53
%185 = OpExtInst  %5  %1 UMin %177 %184
%186 = OpImageQuerySizeLod  %12  %180 %185
%188 = OpISub  %12  %186 %187
%189 = OpExtInst  %12  %1 UMin %182 %188
%190 = OpImageFetch  %6  %180 %189 Lod %185
%191 = OpCompositeExtract  %4  %190 0
OpReturnValue %191
OpFunctionEnd
%195 = OpFunction  %4  None %143
%193 = OpFunctionParameter  %8
%194 = OpFunctionParameter  %5
%192 = OpLabel
%196 = OpLoad  %16  %35
OpBranch %197
%197 = OpLabel
%198 = OpImageQuerySamples  %5  %196
%199 = OpISub  %5  %198 %53
%200 = OpExtInst  %5  %1 UMin %194 %199
%201 = OpImageQuerySize  %8  %196
%203 = OpISub  %8  %201 %202
%204 = OpExtInst  %8  %1 UMin %193 %203
%205 = OpImageFetch  %6  %196 %204 Sample %200
%206 = OpCompositeExtract  %4  %205 0
OpReturnValue %206
OpFunctionEnd
%210 = OpFunction  %2  None %211
%208 = OpFunctionParameter  %5
%209 = OpFunctionParameter  %6
%207 = OpLabel
%212 = OpLoad  %17  %37
OpBranch %213
%213 = OpLabel
OpImageWrite %212 %208 %209
OpReturn
OpFunctionEnd
%217 = OpFunction  %2  None %218
%215 = OpFunctionParameter  %8
%216 = OpFunctionParameter  %6
%214 = OpLabel
%219 = OpLoad  %18  %39
OpBranch %220
%220 = OpLabel
OpImageWrite %219 %215 %216
OpReturn
OpFunctionEnd
%225 = OpFunction  %2  None %226
%222 = OpFunctionParameter  %8
%223 = OpFunctionParameter  %10
%224 = OpFunctionParameter  %6
%221 = OpLabel
%227 = OpLoad  %19  %41
OpBranch %228
%228 = OpLabel
%229 = OpBitcast  %5  %223
%230 = OpCompositeConstruct  %12  %222 %229
OpImageWrite %227 %230 %224
OpReturn
OpFunctionEnd
%235 = OpFunction  %2  None %236
%232 = OpFunctionParameter  %8
%233 = OpFunctionParameter  %5
%234 = OpFunctionParameter  %6
%231 = OpLabel
%237 = OpLoad  %19  %41
OpBranch %238
%238 = OpLabel
%239 = OpCompositeConstruct  %12  %232 %233
OpImageWrite %237 %239 %234
OpReturn
OpFunctionEnd
%243 = OpFunction  %2  None %244
%241 = OpFunctionParameter  %12
%242 = OpFunctionParameter  %6
%240 = OpLabel
%245 = OpLoad  %20  %43
OpBranch %246
%246 = OpLabel
OpImageWrite %245 %241 %242
OpReturn
OpFunctionEnd
%250 = OpFunction  %2  None %251
%247 = OpLabel
%252 = OpLoad  %3  %21
%253 = OpLoad  %7  %23
%254 = OpLoad  %9  %25
%255 = OpLoad  %11  %27
%256 = OpLoad  %13  %29
%257 = OpLoad  %17  %37
%258 = OpLoad  %18  %39
%259 = OpLoad  %19  %41
%260 = OpLoad  %20  %43
OpBranch %268
%268 = OpLabel
%269 = OpFunctionCall  %6  %48 %261 %261
%270 = OpFunctionCall  %6  %63 %262 %261
%271 = OpFunctionCall  %6  %79 %262 %263 %261
%272 = OpFunctionCall  %6  %97 %262 %261 %261
%273 = OpFunctionCall  %6  %113 %264 %261
%274 = OpFunctionCall  %6  %128 %262 %261
%275 = OpFunctionCall  %2  %210 %261 %265
%276 = OpFunctionCall  %2  %217 %262 %265
%277 = OpFunctionCall  %2  %225 %262 %263 %265
%278 = OpFunctionCall  %2  %235 %262 %261 %265
%279 = OpFunctionCall  %2  %243 %264 %265
OpStore %248 %267
OpReturn
OpFunctionEnd