wgpu/tests/out/spv/bounds-check-zero.spvasm
2021-12-15 09:33:33 -05:00

320 lines
7.6 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 209
OpCapability Shader
OpCapability Linkage
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpDecorate %10 ArrayStride 4
OpDecorate %13 ArrayStride 4
OpMemberDecorate %14 0 Offset 0
OpMemberDecorate %14 1 Offset 48
OpMemberDecorate %14 2 Offset 64
OpMemberDecorate %14 2 ColMajor
OpMemberDecorate %14 2 MatrixStride 16
OpMemberDecorate %14 3 Offset 112
OpDecorate %15 DescriptorSet 0
OpDecorate %15 Binding 0
OpDecorate %14 Block
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 10
%6 = OpTypeFloat 32
%5 = OpConstant %6 100.0
%7 = OpConstant %4 9
%8 = OpConstant %4 3
%9 = OpConstant %4 2
%10 = OpTypeArray %6 %3
%11 = OpTypeVector %6 4
%12 = OpTypeMatrix %11 3
%13 = OpTypeRuntimeArray %6
%14 = OpTypeStruct %10 %11 %12 %13
%16 = OpTypePointer StorageBuffer %14
%15 = OpVariable %16 StorageBuffer
%20 = OpTypeFunction %6 %4
%22 = OpTypePointer StorageBuffer %10
%23 = OpTypePointer StorageBuffer %6
%25 = OpTypeInt 32 0
%24 = OpConstant %25 10
%27 = OpTypeBool
%28 = OpConstant %25 0
%30 = OpConstantNull %6
%39 = OpTypePointer StorageBuffer %13
%42 = OpConstant %25 3
%44 = OpConstantNull %6
%53 = OpTypePointer StorageBuffer %11
%54 = OpTypePointer StorageBuffer %6
%55 = OpConstant %25 4
%57 = OpConstant %25 1
%59 = OpConstantNull %6
%68 = OpTypeFunction %6 %11 %4
%71 = OpConstantNull %6
%79 = OpTypeFunction %11 %4
%81 = OpTypePointer StorageBuffer %12
%82 = OpTypePointer StorageBuffer %11
%84 = OpConstant %25 2
%86 = OpConstantNull %11
%95 = OpTypeFunction %6 %4 %4
%101 = OpConstantNull %6
%117 = OpConstantNull %6
%124 = OpTypeFunction %6
%126 = OpConstant %25 9
%139 = OpTypeFunction %2 %4 %6
%168 = OpTypeFunction %2 %4 %11
%179 = OpTypeFunction %2 %4 %4 %6
%204 = OpTypeFunction %2 %6
%19 = OpFunction %6 None %20
%18 = OpFunctionParameter %4
%17 = OpLabel
OpBranch %21
%21 = OpLabel
%26 = OpULessThan %27 %18 %24
OpSelectionMerge %31 None
OpBranchConditional %26 %32 %31
%32 = OpLabel
%29 = OpAccessChain %23 %15 %28 %18
%33 = OpLoad %6 %29
OpBranch %31
%31 = OpLabel
%34 = OpPhi %6 %30 %21 %33 %32
OpReturnValue %34
OpFunctionEnd
%37 = OpFunction %6 None %20
%36 = OpFunctionParameter %4
%35 = OpLabel
OpBranch %38
%38 = OpLabel
%40 = OpArrayLength %25 %15 3
%41 = OpULessThan %27 %36 %40
OpSelectionMerge %45 None
OpBranchConditional %41 %46 %45
%46 = OpLabel
%43 = OpAccessChain %23 %15 %42 %36
%47 = OpLoad %6 %43
OpBranch %45
%45 = OpLabel
%48 = OpPhi %6 %44 %38 %47 %46
OpReturnValue %48
OpFunctionEnd
%51 = OpFunction %6 None %20
%50 = OpFunctionParameter %4
%49 = OpLabel
OpBranch %52
%52 = OpLabel
%56 = OpULessThan %27 %50 %55
OpSelectionMerge %60 None
OpBranchConditional %56 %61 %60
%61 = OpLabel
%58 = OpAccessChain %54 %15 %57 %50
%62 = OpLoad %6 %58
OpBranch %60
%60 = OpLabel
%63 = OpPhi %6 %59 %52 %62 %61
OpReturnValue %63
OpFunctionEnd
%67 = OpFunction %6 None %68
%65 = OpFunctionParameter %11
%66 = OpFunctionParameter %4
%64 = OpLabel
OpBranch %69
%69 = OpLabel
%70 = OpULessThan %27 %66 %55
OpSelectionMerge %72 None
OpBranchConditional %70 %73 %72
%73 = OpLabel
%74 = OpVectorExtractDynamic %6 %65 %66
OpBranch %72
%72 = OpLabel
%75 = OpPhi %6 %71 %69 %74 %73
OpReturnValue %75
OpFunctionEnd
%78 = OpFunction %11 None %79
%77 = OpFunctionParameter %4
%76 = OpLabel
OpBranch %80
%80 = OpLabel
%83 = OpULessThan %27 %77 %42
OpSelectionMerge %87 None
OpBranchConditional %83 %88 %87
%88 = OpLabel
%85 = OpAccessChain %82 %15 %84 %77
%89 = OpLoad %11 %85
OpBranch %87
%87 = OpLabel
%90 = OpPhi %11 %86 %80 %89 %88
OpReturnValue %90
OpFunctionEnd
%94 = OpFunction %6 None %95
%92 = OpFunctionParameter %4
%93 = OpFunctionParameter %4
%91 = OpLabel
OpBranch %96
%96 = OpLabel
%97 = OpULessThan %27 %93 %55
%98 = OpULessThan %27 %92 %42
%99 = OpLogicalAnd %27 %97 %98
OpSelectionMerge %102 None
OpBranchConditional %99 %103 %102
%103 = OpLabel
%100 = OpAccessChain %54 %15 %84 %92 %93
%104 = OpLoad %6 %100
OpBranch %102
%102 = OpLabel
%105 = OpPhi %6 %101 %96 %104 %103
OpReturnValue %105
OpFunctionEnd
%108 = OpFunction %6 None %20
%107 = OpFunctionParameter %4
%106 = OpLabel
OpBranch %109
%109 = OpLabel
%110 = OpConvertSToF %6 %107
%111 = OpFDiv %6 %110 %5
%112 = OpExtInst %6 %1 Sin %111
%113 = OpFMul %6 %112 %5
%114 = OpConvertFToS %4 %113
%115 = OpULessThan %27 %114 %24
OpSelectionMerge %118 None
OpBranchConditional %115 %119 %118
%119 = OpLabel
%116 = OpAccessChain %23 %15 %28 %114
%120 = OpLoad %6 %116
OpBranch %118
%118 = OpLabel
%121 = OpPhi %6 %117 %109 %120 %119
OpReturnValue %121
OpFunctionEnd
%123 = OpFunction %6 None %124
%122 = OpLabel
OpBranch %125
%125 = OpLabel
%127 = OpAccessChain %23 %15 %28 %126
%128 = OpLoad %6 %127
%129 = OpAccessChain %54 %15 %57 %42
%130 = OpLoad %6 %129
%131 = OpFAdd %6 %128 %130
%132 = OpAccessChain %54 %15 %84 %84 %42
%133 = OpLoad %6 %132
%134 = OpFAdd %6 %131 %133
OpReturnValue %134
OpFunctionEnd
%138 = OpFunction %2 None %139
%136 = OpFunctionParameter %4
%137 = OpFunctionParameter %6
%135 = OpLabel
OpBranch %140
%140 = OpLabel
%141 = OpULessThan %27 %136 %24
OpSelectionMerge %143 None
OpBranchConditional %141 %144 %143
%144 = OpLabel
%142 = OpAccessChain %23 %15 %28 %136
OpStore %142 %137
OpBranch %143
%143 = OpLabel
OpReturn
OpFunctionEnd
%148 = OpFunction %2 None %139
%146 = OpFunctionParameter %4
%147 = OpFunctionParameter %6
%145 = OpLabel
OpBranch %149
%149 = OpLabel
%150 = OpArrayLength %25 %15 3
%151 = OpULessThan %27 %146 %150
OpSelectionMerge %153 None
OpBranchConditional %151 %154 %153
%154 = OpLabel
%152 = OpAccessChain %23 %15 %42 %146
OpStore %152 %147
OpBranch %153
%153 = OpLabel
OpReturn
OpFunctionEnd
%158 = OpFunction %2 None %139
%156 = OpFunctionParameter %4
%157 = OpFunctionParameter %6
%155 = OpLabel
OpBranch %159
%159 = OpLabel
%160 = OpULessThan %27 %156 %55
OpSelectionMerge %162 None
OpBranchConditional %160 %163 %162
%163 = OpLabel
%161 = OpAccessChain %54 %15 %57 %156
OpStore %161 %157
OpBranch %162
%162 = OpLabel
OpReturn
OpFunctionEnd
%167 = OpFunction %2 None %168
%165 = OpFunctionParameter %4
%166 = OpFunctionParameter %11
%164 = OpLabel
OpBranch %169
%169 = OpLabel
%170 = OpULessThan %27 %165 %42
OpSelectionMerge %172 None
OpBranchConditional %170 %173 %172
%173 = OpLabel
%171 = OpAccessChain %82 %15 %84 %165
OpStore %171 %166
OpBranch %172
%172 = OpLabel
OpReturn
OpFunctionEnd
%178 = OpFunction %2 None %179
%175 = OpFunctionParameter %4
%176 = OpFunctionParameter %4
%177 = OpFunctionParameter %6
%174 = OpLabel
OpBranch %180
%180 = OpLabel
%181 = OpULessThan %27 %176 %55
%182 = OpULessThan %27 %175 %42
%183 = OpLogicalAnd %27 %181 %182
OpSelectionMerge %185 None
OpBranchConditional %183 %186 %185
%186 = OpLabel
%184 = OpAccessChain %54 %15 %84 %175 %176
OpStore %184 %177
OpBranch %185
%185 = OpLabel
OpReturn
OpFunctionEnd
%190 = OpFunction %2 None %139
%188 = OpFunctionParameter %4
%189 = OpFunctionParameter %6
%187 = OpLabel
OpBranch %191
%191 = OpLabel
%192 = OpConvertSToF %6 %188
%193 = OpFDiv %6 %192 %5
%194 = OpExtInst %6 %1 Sin %193
%195 = OpFMul %6 %194 %5
%196 = OpConvertFToS %4 %195
%197 = OpULessThan %27 %196 %24
OpSelectionMerge %199 None
OpBranchConditional %197 %200 %199
%200 = OpLabel
%198 = OpAccessChain %23 %15 %28 %196
OpStore %198 %189
OpBranch %199
%199 = OpLabel
OpReturn
OpFunctionEnd
%203 = OpFunction %2 None %204
%202 = OpFunctionParameter %6
%201 = OpLabel
OpBranch %205
%205 = OpLabel
%206 = OpAccessChain %23 %15 %28 %126
OpStore %206 %202
%207 = OpAccessChain %54 %15 %57 %42
OpStore %207 %202
%208 = OpAccessChain %54 %15 %84 %84 %42
OpStore %208 %202
OpReturn
OpFunctionEnd