wgpu/naga/tests/out/spv/access.spvasm
2023-10-25 14:25:04 -04:00

461 lines
13 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 301
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %219 "foo_vert" %214 %217
OpEntryPoint Fragment %273 "foo_frag" %272
OpEntryPoint GLCompute %291 "assign_through_ptr"
OpExecutionMode %273 OriginUpperLeft
OpExecutionMode %291 LocalSize 1 1 1
OpMemberName %6 0 "a"
OpMemberName %6 1 "b"
OpMemberName %6 2 "c"
OpName %6 "GlobalConst"
OpMemberName %7 0 "value"
OpName %7 "AlignedWrapper"
OpMemberName %20 0 "_matrix"
OpMemberName %20 1 "matrix_array"
OpMemberName %20 2 "atom"
OpMemberName %20 3 "atom_arr"
OpMemberName %20 4 "arr"
OpMemberName %20 5 "data"
OpName %20 "Bar"
OpMemberName %22 0 "m"
OpName %22 "Baz"
OpMemberName %26 0 "am"
OpName %26 "MatCx2InArray"
OpName %40 "global_const"
OpName %42 "bar"
OpName %44 "baz"
OpName %47 "qux"
OpName %50 "nested_mat_cx2"
OpName %54 "test_matrix_within_struct_accesses"
OpName %82 "idx"
OpName %84 "t"
OpName %130 "test_matrix_within_array_within_struct_accesses"
OpName %140 "idx"
OpName %141 "t"
OpName %187 "foo"
OpName %188 "read_from_private"
OpName %193 "a"
OpName %194 "test_arr_as_arg"
OpName %200 "p"
OpName %201 "assign_through_ptr_fn"
OpName %206 "foo"
OpName %207 "assign_array_through_ptr_fn"
OpName %214 "vi"
OpName %219 "foo_vert"
OpName %231 "foo"
OpName %232 "c2"
OpName %273 "foo_frag"
OpName %291 "assign_through_ptr"
OpName %296 "val"
OpName %297 "arr"
OpMemberDecorate %6 0 Offset 0
OpMemberDecorate %6 1 Offset 16
OpMemberDecorate %6 2 Offset 28
OpMemberDecorate %7 0 Offset 0
OpDecorate %13 ArrayStride 16
OpDecorate %15 ArrayStride 4
OpDecorate %18 ArrayStride 8
OpDecorate %19 ArrayStride 8
OpMemberDecorate %20 0 Offset 0
OpMemberDecorate %20 0 ColMajor
OpMemberDecorate %20 0 MatrixStride 16
OpMemberDecorate %20 1 Offset 64
OpMemberDecorate %20 1 ColMajor
OpMemberDecorate %20 1 MatrixStride 8
OpMemberDecorate %20 2 Offset 96
OpMemberDecorate %20 3 Offset 100
OpMemberDecorate %20 4 Offset 144
OpMemberDecorate %20 5 Offset 160
OpDecorate %20 Block
OpMemberDecorate %22 0 Offset 0
OpMemberDecorate %22 0 ColMajor
OpMemberDecorate %22 0 MatrixStride 8
OpDecorate %25 ArrayStride 32
OpMemberDecorate %26 0 Offset 0
OpMemberDecorate %26 0 ColMajor
OpMemberDecorate %26 0 MatrixStride 8
OpDecorate %28 ArrayStride 4
OpDecorate %29 ArrayStride 40
OpDecorate %32 ArrayStride 4
OpDecorate %34 ArrayStride 16
OpDecorate %42 DescriptorSet 0
OpDecorate %42 Binding 0
OpDecorate %44 DescriptorSet 0
OpDecorate %44 Binding 1
OpDecorate %45 Block
OpMemberDecorate %45 0 Offset 0
OpDecorate %47 DescriptorSet 0
OpDecorate %47 Binding 2
OpDecorate %48 Block
OpMemberDecorate %48 0 Offset 0
OpDecorate %50 DescriptorSet 0
OpDecorate %50 Binding 3
OpDecorate %51 Block
OpMemberDecorate %51 0 Offset 0
OpDecorate %214 BuiltIn VertexIndex
OpDecorate %217 BuiltIn Position
OpDecorate %272 Location 0
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%4 = OpTypeVector %3 3
%5 = OpTypeInt 32 1
%6 = OpTypeStruct %3 %4 %5
%7 = OpTypeStruct %5
%10 = OpTypeFloat 32
%9 = OpTypeVector %10 3
%8 = OpTypeMatrix %9 4
%12 = OpTypeVector %10 2
%11 = OpTypeMatrix %12 2
%14 = OpConstant %3 2
%13 = OpTypeArray %11 %14
%16 = OpConstant %3 10
%15 = OpTypeArray %5 %16
%17 = OpTypeVector %3 2
%18 = OpTypeArray %17 %14
%19 = OpTypeRuntimeArray %7
%20 = OpTypeStruct %8 %13 %5 %15 %18 %19
%21 = OpTypeMatrix %12 3
%22 = OpTypeStruct %21
%23 = OpTypeVector %5 2
%24 = OpTypeMatrix %12 4
%25 = OpTypeArray %24 %14
%26 = OpTypeStruct %25
%27 = OpTypePointer Function %10
%28 = OpTypeArray %10 %16
%30 = OpConstant %3 5
%29 = OpTypeArray %28 %30
%31 = OpTypeVector %10 4
%32 = OpTypeArray %5 %30
%33 = OpTypePointer Function %3
%34 = OpTypeArray %31 %14
%35 = OpTypePointer Function %34
%36 = OpConstant %3 0
%37 = OpConstantComposite %4 %36 %36 %36
%38 = OpConstant %5 0
%39 = OpConstantComposite %6 %36 %37 %38
%41 = OpTypePointer Private %6
%40 = OpVariable %41 Private %39
%43 = OpTypePointer StorageBuffer %20
%42 = OpVariable %43 StorageBuffer
%45 = OpTypeStruct %22
%46 = OpTypePointer Uniform %45
%44 = OpVariable %46 Uniform
%48 = OpTypeStruct %23
%49 = OpTypePointer StorageBuffer %48
%47 = OpVariable %49 StorageBuffer
%51 = OpTypeStruct %26
%52 = OpTypePointer Uniform %51
%50 = OpVariable %52 Uniform
%55 = OpTypeFunction %2
%56 = OpTypePointer Uniform %22
%58 = OpConstant %5 1
%59 = OpConstant %10 1.0
%60 = OpConstantComposite %12 %59 %59
%61 = OpConstant %10 2.0
%62 = OpConstantComposite %12 %61 %61
%63 = OpConstant %10 3.0
%64 = OpConstantComposite %12 %63 %63
%65 = OpConstantComposite %21 %60 %62 %64
%66 = OpConstantComposite %22 %65
%67 = OpConstant %10 6.0
%68 = OpConstantComposite %12 %67 %67
%69 = OpConstant %10 5.0
%70 = OpConstantComposite %12 %69 %69
%71 = OpConstant %10 4.0
%72 = OpConstantComposite %12 %71 %71
%73 = OpConstantComposite %21 %68 %70 %72
%74 = OpConstant %10 9.0
%75 = OpConstantComposite %12 %74 %74
%76 = OpConstant %10 90.0
%77 = OpConstantComposite %12 %76 %76
%78 = OpConstant %10 10.0
%79 = OpConstant %10 20.0
%80 = OpConstant %10 30.0
%81 = OpConstant %10 40.0
%83 = OpTypePointer Function %5
%85 = OpTypePointer Function %22
%89 = OpTypePointer Uniform %21
%92 = OpTypePointer Uniform %12
%98 = OpTypePointer Uniform %10
%99 = OpConstant %3 1
%114 = OpTypePointer Function %21
%116 = OpTypePointer Function %12
%120 = OpTypePointer Function %10
%131 = OpTypePointer Uniform %26
%133 = OpConstantNull %25
%134 = OpConstantComposite %26 %133
%135 = OpConstant %10 8.0
%136 = OpConstantComposite %12 %135 %135
%137 = OpConstant %10 7.0
%138 = OpConstantComposite %12 %137 %137
%139 = OpConstantComposite %24 %136 %138 %68 %70
%142 = OpTypePointer Function %26
%146 = OpTypePointer Uniform %25
%149 = OpTypePointer Uniform %24
%171 = OpTypePointer Function %25
%173 = OpTypePointer Function %24
%189 = OpTypeFunction %10 %27
%195 = OpTypeFunction %10 %29
%202 = OpTypeFunction %2 %33
%203 = OpConstant %3 42
%208 = OpTypeFunction %2 %35
%209 = OpConstantComposite %31 %59 %59 %59 %59
%210 = OpConstantComposite %31 %61 %61 %61 %61
%211 = OpConstantComposite %34 %209 %210
%215 = OpTypePointer Input %3
%214 = OpVariable %215 Input
%218 = OpTypePointer Output %31
%217 = OpVariable %218 Output
%221 = OpTypePointer StorageBuffer %23
%224 = OpConstant %10 0.0
%225 = OpConstant %3 3
%226 = OpConstant %5 3
%227 = OpConstant %5 4
%228 = OpConstant %5 5
%229 = OpConstant %5 42
%230 = OpConstantNull %29
%233 = OpTypePointer Function %32
%234 = OpConstantNull %32
%239 = OpTypePointer StorageBuffer %8
%242 = OpTypePointer StorageBuffer %18
%243 = OpConstant %3 4
%246 = OpTypePointer StorageBuffer %9
%247 = OpTypePointer StorageBuffer %10
%250 = OpTypePointer StorageBuffer %19
%253 = OpTypePointer StorageBuffer %7
%254 = OpTypePointer StorageBuffer %5
%266 = OpTypeVector %5 4
%272 = OpVariable %218 Output
%275 = OpConstantComposite %9 %224 %224 %224
%276 = OpConstantComposite %9 %59 %59 %59
%277 = OpConstantComposite %9 %61 %61 %61
%278 = OpConstantComposite %9 %63 %63 %63
%279 = OpConstantComposite %8 %275 %276 %277 %278
%280 = OpConstantComposite %17 %36 %36
%281 = OpConstantComposite %17 %99 %99
%282 = OpConstantComposite %18 %280 %281
%283 = OpConstantNull %23
%284 = OpConstantComposite %31 %224 %224 %224 %224
%292 = OpConstant %3 33
%293 = OpConstantComposite %31 %67 %67 %67 %67
%294 = OpConstantComposite %31 %137 %137 %137 %137
%295 = OpConstantComposite %34 %293 %294
%54 = OpFunction %2 None %55
%53 = OpLabel
%82 = OpVariable %83 Function %58
%84 = OpVariable %85 Function %66
%57 = OpAccessChain %56 %44 %36
OpBranch %86
%86 = OpLabel
%87 = OpLoad %5 %82
%88 = OpISub %5 %87 %58
OpStore %82 %88
%90 = OpAccessChain %89 %57 %36
%91 = OpLoad %21 %90
%93 = OpAccessChain %92 %57 %36 %36
%94 = OpLoad %12 %93
%95 = OpLoad %5 %82
%96 = OpAccessChain %92 %57 %36 %95
%97 = OpLoad %12 %96
%100 = OpAccessChain %98 %57 %36 %36 %99
%101 = OpLoad %10 %100
%102 = OpLoad %5 %82
%103 = OpAccessChain %98 %57 %36 %36 %102
%104 = OpLoad %10 %103
%105 = OpLoad %5 %82
%106 = OpAccessChain %98 %57 %36 %105 %99
%107 = OpLoad %10 %106
%108 = OpLoad %5 %82
%109 = OpLoad %5 %82
%110 = OpAccessChain %98 %57 %36 %108 %109
%111 = OpLoad %10 %110
%112 = OpLoad %5 %82
%113 = OpIAdd %5 %112 %58
OpStore %82 %113
%115 = OpAccessChain %114 %84 %36
OpStore %115 %73
%117 = OpAccessChain %116 %84 %36 %36
OpStore %117 %75
%118 = OpLoad %5 %82
%119 = OpAccessChain %116 %84 %36 %118
OpStore %119 %77
%121 = OpAccessChain %120 %84 %36 %36 %99
OpStore %121 %78
%122 = OpLoad %5 %82
%123 = OpAccessChain %120 %84 %36 %36 %122
OpStore %123 %79
%124 = OpLoad %5 %82
%125 = OpAccessChain %120 %84 %36 %124 %99
OpStore %125 %80
%126 = OpLoad %5 %82
%127 = OpLoad %5 %82
%128 = OpAccessChain %120 %84 %36 %126 %127
OpStore %128 %81
OpReturn
OpFunctionEnd
%130 = OpFunction %2 None %55
%129 = OpLabel
%140 = OpVariable %83 Function %58
%141 = OpVariable %142 Function %134
%132 = OpAccessChain %131 %50 %36
OpBranch %143
%143 = OpLabel
%144 = OpLoad %5 %140
%145 = OpISub %5 %144 %58
OpStore %140 %145
%147 = OpAccessChain %146 %132 %36
%148 = OpLoad %25 %147
%150 = OpAccessChain %149 %132 %36 %36
%151 = OpLoad %24 %150
%152 = OpAccessChain %92 %132 %36 %36 %36
%153 = OpLoad %12 %152
%154 = OpLoad %5 %140
%155 = OpAccessChain %92 %132 %36 %36 %154
%156 = OpLoad %12 %155
%157 = OpAccessChain %98 %132 %36 %36 %36 %99
%158 = OpLoad %10 %157
%159 = OpLoad %5 %140
%160 = OpAccessChain %98 %132 %36 %36 %36 %159
%161 = OpLoad %10 %160
%162 = OpLoad %5 %140
%163 = OpAccessChain %98 %132 %36 %36 %162 %99
%164 = OpLoad %10 %163
%165 = OpLoad %5 %140
%166 = OpLoad %5 %140
%167 = OpAccessChain %98 %132 %36 %36 %165 %166
%168 = OpLoad %10 %167
%169 = OpLoad %5 %140
%170 = OpIAdd %5 %169 %58
OpStore %140 %170
%172 = OpAccessChain %171 %141 %36
OpStore %172 %133
%174 = OpAccessChain %173 %141 %36 %36
OpStore %174 %139
%175 = OpAccessChain %116 %141 %36 %36 %36
OpStore %175 %75
%176 = OpLoad %5 %140
%177 = OpAccessChain %116 %141 %36 %36 %176
OpStore %177 %77
%178 = OpAccessChain %120 %141 %36 %36 %36 %99
OpStore %178 %78
%179 = OpLoad %5 %140
%180 = OpAccessChain %120 %141 %36 %36 %36 %179
OpStore %180 %79
%181 = OpLoad %5 %140
%182 = OpAccessChain %120 %141 %36 %36 %181 %99
OpStore %182 %80
%183 = OpLoad %5 %140
%184 = OpLoad %5 %140
%185 = OpAccessChain %120 %141 %36 %36 %183 %184
OpStore %185 %81
OpReturn
OpFunctionEnd
%188 = OpFunction %10 None %189
%187 = OpFunctionParameter %27
%186 = OpLabel
OpBranch %190
%190 = OpLabel
%191 = OpLoad %10 %187
OpReturnValue %191
OpFunctionEnd
%194 = OpFunction %10 None %195
%193 = OpFunctionParameter %29
%192 = OpLabel
OpBranch %196
%196 = OpLabel
%197 = OpCompositeExtract %28 %193 4
%198 = OpCompositeExtract %10 %197 9
OpReturnValue %198
OpFunctionEnd
%201 = OpFunction %2 None %202
%200 = OpFunctionParameter %33
%199 = OpLabel
OpBranch %204
%204 = OpLabel
OpStore %200 %203
OpReturn
OpFunctionEnd
%207 = OpFunction %2 None %208
%206 = OpFunctionParameter %35
%205 = OpLabel
OpBranch %212
%212 = OpLabel
OpStore %206 %211
OpReturn
OpFunctionEnd
%219 = OpFunction %2 None %55
%213 = OpLabel
%231 = OpVariable %27 Function %224
%232 = OpVariable %233 Function %234
%216 = OpLoad %3 %214
%220 = OpAccessChain %56 %44 %36
%222 = OpAccessChain %221 %47 %36
%223 = OpAccessChain %131 %50 %36
OpBranch %235
%235 = OpLabel
%236 = OpLoad %10 %231
OpStore %231 %59
%237 = OpFunctionCall %2 %54
%238 = OpFunctionCall %2 %130
%240 = OpAccessChain %239 %42 %36
%241 = OpLoad %8 %240
%244 = OpAccessChain %242 %42 %243
%245 = OpLoad %18 %244
%248 = OpAccessChain %247 %42 %36 %225 %36
%249 = OpLoad %10 %248
%251 = OpArrayLength %3 %42 5
%252 = OpISub %3 %251 %14
%255 = OpAccessChain %254 %42 %30 %252 %36
%256 = OpLoad %5 %255
%257 = OpLoad %23 %222
%258 = OpFunctionCall %10 %188 %231
%259 = OpConvertFToS %5 %249
%260 = OpCompositeConstruct %32 %256 %259 %226 %227 %228
OpStore %232 %260
%261 = OpIAdd %3 %216 %99
%262 = OpAccessChain %83 %232 %261
OpStore %262 %229
%263 = OpAccessChain %83 %232 %216
%264 = OpLoad %5 %263
%265 = OpFunctionCall %10 %194 %230
%267 = OpCompositeConstruct %266 %264 %264 %264 %264
%268 = OpConvertSToF %31 %267
%269 = OpMatrixTimesVector %9 %241 %268
%270 = OpCompositeConstruct %31 %269 %61
OpStore %217 %270
OpReturn
OpFunctionEnd
%273 = OpFunction %2 None %55
%271 = OpLabel
%274 = OpAccessChain %221 %47 %36
OpBranch %285
%285 = OpLabel
%286 = OpAccessChain %247 %42 %36 %99 %14
OpStore %286 %59
%287 = OpAccessChain %239 %42 %36
OpStore %287 %279
%288 = OpAccessChain %242 %42 %243
OpStore %288 %282
%289 = OpAccessChain %254 %42 %30 %99 %36
OpStore %289 %58
OpStore %274 %283
OpStore %272 %284
OpReturn
OpFunctionEnd
%291 = OpFunction %2 None %55
%290 = OpLabel
%296 = OpVariable %33 Function %292
%297 = OpVariable %35 Function %295
OpBranch %298
%298 = OpLabel
%299 = OpFunctionCall %2 %201 %296
%300 = OpFunctionCall %2 %207 %297
OpReturn
OpFunctionEnd