wgpu/tests/out/spv/access.spvasm
2022-04-26 21:40:31 -07:00

331 lines
9.3 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 218
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %141 "foo_vert" %136 %139
OpEntryPoint Fragment %178 "foo_frag" %177
OpEntryPoint GLCompute %195 "atomics"
OpExecutionMode %178 OriginUpperLeft
OpExecutionMode %195 LocalSize 1 1 1
OpSource GLSL 450
OpMemberName %32 0 "value"
OpName %32 "AlignedWrapper"
OpMemberName %41 0 "_matrix"
OpMemberName %41 1 "matrix_array"
OpMemberName %41 2 "atom"
OpMemberName %41 3 "arr"
OpMemberName %41 4 "data"
OpName %41 "Bar"
OpMemberName %43 0 "m"
OpName %43 "Baz"
OpName %52 "bar"
OpName %54 "baz"
OpName %57 "idx"
OpName %59 "t"
OpName %62 "test_matrix_within_struct_accesses"
OpName %120 "foo"
OpName %121 "read_from_private"
OpName %126 "a"
OpName %127 "test_arr_as_arg"
OpName %132 "foo"
OpName %133 "c"
OpName %136 "vi"
OpName %141 "foo_vert"
OpName %178 "foo_frag"
OpName %193 "tmp"
OpName %195 "atomics"
OpMemberDecorate %32 0 Offset 0
OpDecorate %37 ArrayStride 16
OpDecorate %39 ArrayStride 8
OpDecorate %40 ArrayStride 8
OpMemberDecorate %41 0 Offset 0
OpMemberDecorate %41 0 ColMajor
OpMemberDecorate %41 0 MatrixStride 16
OpMemberDecorate %41 1 Offset 64
OpMemberDecorate %41 1 ColMajor
OpMemberDecorate %41 1 MatrixStride 8
OpMemberDecorate %41 2 Offset 96
OpMemberDecorate %41 3 Offset 104
OpMemberDecorate %41 4 Offset 120
OpMemberDecorate %43 0 Offset 0
OpMemberDecorate %43 0 ColMajor
OpMemberDecorate %43 0 MatrixStride 8
OpDecorate %45 ArrayStride 4
OpDecorate %46 ArrayStride 40
OpDecorate %49 ArrayStride 4
OpDecorate %52 DescriptorSet 0
OpDecorate %52 Binding 0
OpDecorate %41 Block
OpDecorate %54 DescriptorSet 0
OpDecorate %54 Binding 1
OpDecorate %55 Block
OpMemberDecorate %55 0 Offset 0
OpDecorate %136 BuiltIn VertexIndex
OpDecorate %139 BuiltIn Position
OpDecorate %177 Location 0
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 2
%5 = OpConstant %4 9
%6 = OpConstant %4 1
%7 = OpConstant %4 0
%9 = OpTypeFloat 32
%8 = OpConstant %9 1.0
%10 = OpConstant %9 2.0
%11 = OpConstant %9 3.0
%12 = OpConstant %9 6.0
%13 = OpConstant %9 5.0
%14 = OpConstant %9 4.0
%15 = OpConstant %9 9.0
%16 = OpConstant %9 90.0
%17 = OpConstant %9 10.0
%18 = OpConstant %9 20.0
%19 = OpConstant %9 30.0
%20 = OpConstant %9 40.0
%21 = OpConstant %4 10
%22 = OpConstant %4 5
%23 = OpConstant %4 4
%24 = OpConstant %9 0.0
%26 = OpTypeInt 32 0
%25 = OpConstant %26 3
%27 = OpConstant %26 2
%28 = OpConstant %4 3
%29 = OpConstant %26 1
%30 = OpConstant %4 42
%31 = OpConstant %26 0
%32 = OpTypeStruct %4
%34 = OpTypeVector %9 3
%33 = OpTypeMatrix %34 4
%36 = OpTypeVector %9 2
%35 = OpTypeMatrix %36 2
%37 = OpTypeArray %35 %3
%38 = OpTypeVector %26 2
%39 = OpTypeArray %38 %3
%40 = OpTypeRuntimeArray %32
%41 = OpTypeStruct %33 %37 %4 %39 %40
%42 = OpTypeMatrix %36 3
%43 = OpTypeStruct %42
%44 = OpTypePointer Function %9
%45 = OpTypeArray %9 %21
%46 = OpTypeArray %45 %22
%47 = OpTypeVector %9 4
%48 = OpTypePointer StorageBuffer %4
%49 = OpTypeArray %4 %22
%50 = OpConstantComposite %45 %24 %24 %24 %24 %24 %24 %24 %24 %24 %24
%51 = OpConstantComposite %46 %50 %50 %50 %50 %50
%53 = OpTypePointer StorageBuffer %41
%52 = OpVariable %53 StorageBuffer
%55 = OpTypeStruct %43
%56 = OpTypePointer Uniform %55
%54 = OpVariable %56 Uniform
%58 = OpTypePointer Function %4
%60 = OpTypePointer Function %43
%63 = OpTypeFunction %2
%64 = OpTypePointer Uniform %43
%69 = OpTypePointer Uniform %42
%72 = OpTypePointer Uniform %36
%78 = OpTypePointer Uniform %9
%98 = OpTypePointer Function %42
%104 = OpTypePointer Function %36
%110 = OpTypePointer Function %9
%122 = OpTypeFunction %9 %44
%128 = OpTypeFunction %9 %46
%134 = OpTypePointer Function %49
%137 = OpTypePointer Input %26
%136 = OpVariable %137 Input
%140 = OpTypePointer Output %47
%139 = OpVariable %140 Output
%146 = OpTypePointer StorageBuffer %33
%149 = OpTypePointer StorageBuffer %39
%152 = OpTypePointer StorageBuffer %34
%153 = OpTypePointer StorageBuffer %9
%156 = OpTypePointer StorageBuffer %40
%159 = OpTypePointer StorageBuffer %32
%160 = OpConstant %26 4
%171 = OpTypeVector %4 4
%177 = OpVariable %140 Output
%197 = OpTypePointer StorageBuffer %4
%200 = OpConstant %26 64
%62 = OpFunction %2 None %63
%61 = OpLabel
%57 = OpVariable %58 Function %5
%59 = OpVariable %60 Function
%65 = OpAccessChain %64 %54 %31
OpBranch %66
%66 = OpLabel
%67 = OpLoad %4 %57
%68 = OpISub %4 %67 %6
OpStore %57 %68
%70 = OpAccessChain %69 %65 %31
%71 = OpLoad %42 %70
%73 = OpAccessChain %72 %65 %31 %31
%74 = OpLoad %36 %73
%75 = OpLoad %4 %57
%76 = OpAccessChain %72 %65 %31 %75
%77 = OpLoad %36 %76
%79 = OpAccessChain %78 %65 %31 %31 %29
%80 = OpLoad %9 %79
%81 = OpLoad %4 %57
%82 = OpAccessChain %78 %65 %31 %31 %81
%83 = OpLoad %9 %82
%84 = OpLoad %4 %57
%85 = OpAccessChain %78 %65 %31 %84 %29
%86 = OpLoad %9 %85
%87 = OpLoad %4 %57
%88 = OpLoad %4 %57
%89 = OpAccessChain %78 %65 %31 %87 %88
%90 = OpLoad %9 %89
%91 = OpCompositeConstruct %36 %8 %8
%92 = OpCompositeConstruct %36 %10 %10
%93 = OpCompositeConstruct %36 %11 %11
%94 = OpCompositeConstruct %42 %91 %92 %93
%95 = OpCompositeConstruct %43 %94
OpStore %59 %95
%96 = OpLoad %4 %57
%97 = OpIAdd %4 %96 %6
OpStore %57 %97
%99 = OpCompositeConstruct %36 %12 %12
%100 = OpCompositeConstruct %36 %13 %13
%101 = OpCompositeConstruct %36 %14 %14
%102 = OpCompositeConstruct %42 %99 %100 %101
%103 = OpAccessChain %98 %59 %31
OpStore %103 %102
%105 = OpCompositeConstruct %36 %15 %15
%106 = OpAccessChain %104 %59 %31 %31
OpStore %106 %105
%107 = OpLoad %4 %57
%108 = OpCompositeConstruct %36 %16 %16
%109 = OpAccessChain %104 %59 %31 %107
OpStore %109 %108
%111 = OpAccessChain %110 %59 %31 %31 %29
OpStore %111 %17
%112 = OpLoad %4 %57
%113 = OpAccessChain %110 %59 %31 %31 %112
OpStore %113 %18
%114 = OpLoad %4 %57
%115 = OpAccessChain %110 %59 %31 %114 %29
OpStore %115 %19
%116 = OpLoad %4 %57
%117 = OpLoad %4 %57
%118 = OpAccessChain %110 %59 %31 %116 %117
OpStore %118 %20
OpReturn
OpFunctionEnd
%121 = OpFunction %9 None %122
%120 = OpFunctionParameter %44
%119 = OpLabel
OpBranch %123
%123 = OpLabel
%124 = OpLoad %9 %120
OpReturnValue %124
OpFunctionEnd
%127 = OpFunction %9 None %128
%126 = OpFunctionParameter %46
%125 = OpLabel
OpBranch %129
%129 = OpLabel
%130 = OpCompositeExtract %45 %126 4
%131 = OpCompositeExtract %9 %130 9
OpReturnValue %131
OpFunctionEnd
%141 = OpFunction %2 None %63
%135 = OpLabel
%132 = OpVariable %44 Function %24
%133 = OpVariable %134 Function
%138 = OpLoad %26 %136
%142 = OpAccessChain %64 %54 %31
OpBranch %143
%143 = OpLabel
%144 = OpLoad %9 %132
OpStore %132 %8
%145 = OpFunctionCall %2 %62
%147 = OpAccessChain %146 %52 %31
%148 = OpLoad %33 %147
%150 = OpAccessChain %149 %52 %25
%151 = OpLoad %39 %150
%154 = OpAccessChain %153 %52 %31 %25 %31
%155 = OpLoad %9 %154
%157 = OpArrayLength %26 %52 4
%158 = OpISub %26 %157 %27
%161 = OpAccessChain %48 %52 %160 %158 %31
%162 = OpLoad %4 %161
%163 = OpFunctionCall %9 %121 %132
%164 = OpConvertFToS %4 %155
%165 = OpCompositeConstruct %49 %162 %164 %28 %23 %22
OpStore %133 %165
%166 = OpIAdd %26 %138 %29
%167 = OpAccessChain %58 %133 %166
OpStore %167 %30
%168 = OpAccessChain %58 %133 %138
%169 = OpLoad %4 %168
%170 = OpFunctionCall %9 %127 %51
%172 = OpCompositeConstruct %171 %169 %169 %169 %169
%173 = OpConvertSToF %47 %172
%174 = OpMatrixTimesVector %34 %148 %173
%175 = OpCompositeConstruct %47 %174 %10
OpStore %139 %175
OpReturn
OpFunctionEnd
%178 = OpFunction %2 None %63
%176 = OpLabel
OpBranch %179
%179 = OpLabel
%180 = OpAccessChain %153 %52 %31 %29 %27
OpStore %180 %8
%181 = OpCompositeConstruct %34 %24 %24 %24
%182 = OpCompositeConstruct %34 %8 %8 %8
%183 = OpCompositeConstruct %34 %10 %10 %10
%184 = OpCompositeConstruct %34 %11 %11 %11
%185 = OpCompositeConstruct %33 %181 %182 %183 %184
%186 = OpAccessChain %146 %52 %31
OpStore %186 %185
%187 = OpCompositeConstruct %38 %31 %31
%188 = OpCompositeConstruct %38 %29 %29
%189 = OpCompositeConstruct %39 %187 %188
%190 = OpAccessChain %149 %52 %25
OpStore %190 %189
%191 = OpAccessChain %48 %52 %160 %29 %31
OpStore %191 %6
%192 = OpCompositeConstruct %47 %24 %24 %24 %24
OpStore %177 %192
OpReturn
OpFunctionEnd
%195 = OpFunction %2 None %63
%194 = OpLabel
%193 = OpVariable %58 Function
OpBranch %196
%196 = OpLabel
%198 = OpAccessChain %197 %52 %27
%199 = OpAtomicLoad %4 %198 %6 %200
%202 = OpAccessChain %197 %52 %27
%201 = OpAtomicIAdd %4 %202 %6 %200 %22
OpStore %193 %201
%204 = OpAccessChain %197 %52 %27
%203 = OpAtomicISub %4 %204 %6 %200 %22
OpStore %193 %203
%206 = OpAccessChain %197 %52 %27
%205 = OpAtomicAnd %4 %206 %6 %200 %22
OpStore %193 %205
%208 = OpAccessChain %197 %52 %27
%207 = OpAtomicOr %4 %208 %6 %200 %22
OpStore %193 %207
%210 = OpAccessChain %197 %52 %27
%209 = OpAtomicXor %4 %210 %6 %200 %22
OpStore %193 %209
%212 = OpAccessChain %197 %52 %27
%211 = OpAtomicSMin %4 %212 %6 %200 %22
OpStore %193 %211
%214 = OpAccessChain %197 %52 %27
%213 = OpAtomicSMax %4 %214 %6 %200 %22
OpStore %193 %213
%216 = OpAccessChain %197 %52 %27
%215 = OpAtomicExchange %4 %216 %6 %200 %22
OpStore %193 %215
%217 = OpAccessChain %197 %52 %27
OpAtomicStore %217 %6 %200 %199
OpReturn
OpFunctionEnd