Files
wgpu/tests/out/spv/operators.spvasm
teoxoy a730236b68 [wgsl-in] eagerly evaluate const-expressions
[wgsl-in] support const-expressions in attributes

allow `Splat` as an evaluated const-expression type
2023-10-12 13:13:26 +02:00

512 lines
17 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 450
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %439 "main"
OpExecutionMode %439 LocalSize 1 1 1
%2 = OpTypeVoid
%4 = OpTypeFloat 32
%3 = OpTypeVector %4 4
%6 = OpTypeInt 32 1
%5 = OpTypeVector %6 4
%8 = OpTypeBool
%7 = OpTypeVector %8 4
%9 = OpTypeVector %4 2
%10 = OpTypeVector %4 3
%11 = OpTypeVector %8 2
%12 = OpTypeVector %6 2
%14 = OpTypeInt 32 0
%13 = OpTypeVector %14 3
%15 = OpTypeVector %14 2
%16 = OpTypeMatrix %10 3
%17 = OpTypeMatrix %10 4
%18 = OpTypeMatrix %3 3
%19 = OpTypeVector %6 3
%20 = OpConstant %4 1.0
%21 = OpConstantComposite %3 %20 %20 %20 %20
%22 = OpConstant %4 0.0
%23 = OpConstantComposite %3 %22 %22 %22 %22
%24 = OpConstant %4 0.5
%25 = OpConstantComposite %3 %24 %24 %24 %24
%26 = OpConstant %6 1
%27 = OpConstantComposite %5 %26 %26 %26 %26
%30 = OpTypeFunction %3
%31 = OpConstantTrue %8
%32 = OpConstant %6 0
%33 = OpConstantFalse %8
%34 = OpConstant %4 0.1
%58 = OpConstant %4 2.0
%59 = OpConstant %4 3.0
%60 = OpConstant %4 4.0
%61 = OpConstant %6 5
%62 = OpConstant %6 2
%78 = OpTypePointer Function %9
%79 = OpConstantNull %9
%82 = OpTypeFunction %9
%98 = OpTypeFunction %10 %10
%100 = OpTypeVector %8 3
%101 = OpConstantComposite %10 %22 %22 %22
%103 = OpConstantComposite %10 %20 %20 %20
%107 = OpTypeFunction %2
%120 = OpConstant %4 -1.0
%121 = OpConstant %6 -1
%122 = OpConstant %6 3
%123 = OpConstant %14 3
%124 = OpConstant %14 2
%125 = OpConstant %14 1
%126 = OpConstant %14 0
%127 = OpConstantNull %16
%128 = OpConstantNull %17
%129 = OpConstantNull %18
%293 = OpConstant %6 -2
%294 = OpConstant %14 4294967294
%295 = OpConstant %6 4
%296 = OpConstant %14 4
%388 = OpTypePointer Function %6
%389 = OpConstantNull %6
%391 = OpTypePointer Function %19
%392 = OpConstantNull %19
%422 = OpTypePointer Function %6
%433 = OpConstant %6 -5
%434 = OpConstant %6 6
%435 = OpConstant %6 -7
%436 = OpConstant %6 -8
%29 = OpFunction %3 None %30
%28 = OpLabel
OpBranch %35
%35 = OpLabel
%36 = OpSelect %6 %31 %26 %32
%38 = OpCompositeConstruct %7 %31 %31 %31 %31
%37 = OpSelect %3 %38 %21 %23
%39 = OpCompositeConstruct %7 %33 %33 %33 %33
%40 = OpSelect %3 %39 %23 %21
%41 = OpExtInst %3 %1 FMix %23 %21 %25
%43 = OpCompositeConstruct %3 %34 %34 %34 %34
%42 = OpExtInst %3 %1 FMix %23 %21 %43
%44 = OpBitcast %4 %26
%45 = OpBitcast %3 %27
%46 = OpCompositeConstruct %5 %32 %32 %32 %32
%47 = OpCompositeConstruct %5 %36 %36 %36 %36
%48 = OpIAdd %5 %47 %46
%49 = OpConvertSToF %3 %48
%50 = OpFAdd %3 %49 %37
%51 = OpFAdd %3 %50 %41
%52 = OpFAdd %3 %51 %42
%53 = OpCompositeConstruct %3 %44 %44 %44 %44
%54 = OpFAdd %3 %52 %53
%55 = OpFAdd %3 %54 %45
OpReturnValue %55
OpFunctionEnd
%57 = OpFunction %3 None %30
%56 = OpLabel
OpBranch %63
%63 = OpLabel
%64 = OpCompositeConstruct %9 %58 %58
%65 = OpCompositeConstruct %9 %20 %20
%66 = OpFAdd %9 %65 %64
%67 = OpCompositeConstruct %9 %59 %59
%68 = OpFSub %9 %66 %67
%69 = OpCompositeConstruct %9 %60 %60
%70 = OpFDiv %9 %68 %69
%71 = OpCompositeConstruct %5 %61 %61 %61 %61
%72 = OpCompositeConstruct %5 %62 %62 %62 %62
%73 = OpSRem %5 %71 %72
%74 = OpVectorShuffle %3 %70 %70 0 1 0 1
%75 = OpConvertSToF %3 %73
%76 = OpFAdd %3 %74 %75
OpReturnValue %76
OpFunctionEnd
%81 = OpFunction %9 None %82
%80 = OpLabel
%77 = OpVariable %78 Function %79
OpBranch %83
%83 = OpLabel
%84 = OpCompositeConstruct %9 %58 %58
OpStore %77 %84
%85 = OpLoad %9 %77
%86 = OpCompositeConstruct %9 %20 %20
%87 = OpFAdd %9 %85 %86
OpStore %77 %87
%88 = OpLoad %9 %77
%89 = OpCompositeConstruct %9 %59 %59
%90 = OpFSub %9 %88 %89
OpStore %77 %90
%91 = OpLoad %9 %77
%92 = OpCompositeConstruct %9 %60 %60
%93 = OpFDiv %9 %91 %92
OpStore %77 %93
%94 = OpLoad %9 %77
OpReturnValue %94
OpFunctionEnd
%97 = OpFunction %10 None %98
%96 = OpFunctionParameter %10
%95 = OpLabel
OpBranch %99
%99 = OpLabel
%102 = OpFUnordNotEqual %100 %96 %101
%104 = OpSelect %10 %102 %103 %101
OpReturnValue %104
OpFunctionEnd
%106 = OpFunction %2 None %107
%105 = OpLabel
OpBranch %108
%108 = OpLabel
%109 = OpCompositeConstruct %11 %33 %33
%110 = OpLogicalOr %8 %31 %33
%111 = OpCompositeConstruct %100 %31 %31 %31
%112 = OpCompositeConstruct %100 %33 %33 %33
%113 = OpLogicalOr %100 %111 %112
%114 = OpLogicalAnd %8 %31 %33
%115 = OpCompositeConstruct %7 %31 %31 %31 %31
%116 = OpCompositeConstruct %7 %33 %33 %33 %33
%117 = OpLogicalAnd %7 %115 %116
OpReturn
OpFunctionEnd
%119 = OpFunction %2 None %107
%118 = OpLabel
OpBranch %130
%130 = OpLabel
%131 = OpCompositeConstruct %12 %121 %121
%132 = OpCompositeConstruct %9 %120 %120
%133 = OpCompositeConstruct %12 %62 %62
%134 = OpCompositeConstruct %12 %26 %26
%135 = OpIAdd %12 %133 %134
%136 = OpCompositeConstruct %13 %124 %124 %124
%137 = OpCompositeConstruct %13 %125 %125 %125
%138 = OpIAdd %13 %136 %137
%139 = OpCompositeConstruct %3 %58 %58 %58 %58
%140 = OpCompositeConstruct %3 %20 %20 %20 %20
%141 = OpFAdd %3 %139 %140
%142 = OpCompositeConstruct %12 %62 %62
%143 = OpCompositeConstruct %12 %26 %26
%144 = OpISub %12 %142 %143
%145 = OpCompositeConstruct %13 %124 %124 %124
%146 = OpCompositeConstruct %13 %125 %125 %125
%147 = OpISub %13 %145 %146
%148 = OpCompositeConstruct %3 %58 %58 %58 %58
%149 = OpCompositeConstruct %3 %20 %20 %20 %20
%150 = OpFSub %3 %148 %149
%151 = OpCompositeConstruct %12 %62 %62
%152 = OpCompositeConstruct %12 %26 %26
%153 = OpIMul %12 %151 %152
%154 = OpCompositeConstruct %13 %124 %124 %124
%155 = OpCompositeConstruct %13 %125 %125 %125
%156 = OpIMul %13 %154 %155
%157 = OpCompositeConstruct %3 %58 %58 %58 %58
%158 = OpCompositeConstruct %3 %20 %20 %20 %20
%159 = OpFMul %3 %157 %158
%160 = OpCompositeConstruct %12 %62 %62
%161 = OpCompositeConstruct %12 %26 %26
%162 = OpSDiv %12 %160 %161
%163 = OpCompositeConstruct %13 %124 %124 %124
%164 = OpCompositeConstruct %13 %125 %125 %125
%165 = OpUDiv %13 %163 %164
%166 = OpCompositeConstruct %3 %58 %58 %58 %58
%167 = OpCompositeConstruct %3 %20 %20 %20 %20
%168 = OpFDiv %3 %166 %167
%169 = OpCompositeConstruct %12 %62 %62
%170 = OpCompositeConstruct %12 %26 %26
%171 = OpSRem %12 %169 %170
%172 = OpCompositeConstruct %13 %124 %124 %124
%173 = OpCompositeConstruct %13 %125 %125 %125
%174 = OpUMod %13 %172 %173
%175 = OpCompositeConstruct %3 %58 %58 %58 %58
%176 = OpCompositeConstruct %3 %20 %20 %20 %20
%177 = OpFRem %3 %175 %176
OpBranch %178
%178 = OpLabel
%180 = OpCompositeConstruct %12 %62 %62
%181 = OpCompositeConstruct %12 %26 %26
%182 = OpIAdd %12 %180 %181
%183 = OpCompositeConstruct %12 %26 %26
%184 = OpCompositeConstruct %12 %62 %62
%185 = OpIAdd %12 %184 %183
%186 = OpCompositeConstruct %15 %124 %124
%187 = OpCompositeConstruct %15 %125 %125
%188 = OpIAdd %15 %186 %187
%189 = OpCompositeConstruct %15 %125 %125
%190 = OpCompositeConstruct %15 %124 %124
%191 = OpIAdd %15 %190 %189
%192 = OpCompositeConstruct %9 %58 %58
%193 = OpCompositeConstruct %9 %20 %20
%194 = OpFAdd %9 %192 %193
%195 = OpCompositeConstruct %9 %20 %20
%196 = OpCompositeConstruct %9 %58 %58
%197 = OpFAdd %9 %196 %195
%198 = OpCompositeConstruct %12 %62 %62
%199 = OpCompositeConstruct %12 %26 %26
%200 = OpISub %12 %198 %199
%201 = OpCompositeConstruct %12 %26 %26
%202 = OpCompositeConstruct %12 %62 %62
%203 = OpISub %12 %202 %201
%204 = OpCompositeConstruct %15 %124 %124
%205 = OpCompositeConstruct %15 %125 %125
%206 = OpISub %15 %204 %205
%207 = OpCompositeConstruct %15 %125 %125
%208 = OpCompositeConstruct %15 %124 %124
%209 = OpISub %15 %208 %207
%210 = OpCompositeConstruct %9 %58 %58
%211 = OpCompositeConstruct %9 %20 %20
%212 = OpFSub %9 %210 %211
%213 = OpCompositeConstruct %9 %20 %20
%214 = OpCompositeConstruct %9 %58 %58
%215 = OpFSub %9 %214 %213
%216 = OpCompositeConstruct %12 %62 %62
%217 = OpCompositeConstruct %12 %62 %62
%218 = OpCompositeConstruct %15 %124 %124
%219 = OpCompositeConstruct %15 %124 %124
%220 = OpCompositeConstruct %9 %58 %58
%221 = OpCompositeConstruct %9 %58 %58
%222 = OpCompositeConstruct %12 %62 %62
%223 = OpCompositeConstruct %12 %26 %26
%224 = OpSDiv %12 %222 %223
%225 = OpCompositeConstruct %12 %26 %26
%226 = OpCompositeConstruct %12 %62 %62
%227 = OpSDiv %12 %226 %225
%228 = OpCompositeConstruct %15 %124 %124
%229 = OpCompositeConstruct %15 %125 %125
%230 = OpUDiv %15 %228 %229
%231 = OpCompositeConstruct %15 %125 %125
%232 = OpCompositeConstruct %15 %124 %124
%233 = OpUDiv %15 %232 %231
%234 = OpCompositeConstruct %9 %58 %58
%235 = OpCompositeConstruct %9 %20 %20
%236 = OpFDiv %9 %234 %235
%237 = OpCompositeConstruct %9 %20 %20
%238 = OpCompositeConstruct %9 %58 %58
%239 = OpFDiv %9 %238 %237
%240 = OpCompositeConstruct %12 %62 %62
%241 = OpCompositeConstruct %12 %26 %26
%242 = OpSRem %12 %240 %241
%243 = OpCompositeConstruct %12 %26 %26
%244 = OpCompositeConstruct %12 %62 %62
%245 = OpSRem %12 %244 %243
%246 = OpCompositeConstruct %15 %124 %124
%247 = OpCompositeConstruct %15 %125 %125
%248 = OpUMod %15 %246 %247
%249 = OpCompositeConstruct %15 %125 %125
%250 = OpCompositeConstruct %15 %124 %124
%251 = OpUMod %15 %250 %249
%252 = OpCompositeConstruct %9 %58 %58
%253 = OpCompositeConstruct %9 %20 %20
%254 = OpFRem %9 %252 %253
%255 = OpCompositeConstruct %9 %20 %20
%256 = OpCompositeConstruct %9 %58 %58
%257 = OpFRem %9 %256 %255
OpBranch %179
%179 = OpLabel
%259 = OpCompositeExtract %10 %127 0
%260 = OpCompositeExtract %10 %127 0
%261 = OpFAdd %10 %259 %260
%262 = OpCompositeExtract %10 %127 1
%263 = OpCompositeExtract %10 %127 1
%264 = OpFAdd %10 %262 %263
%265 = OpCompositeExtract %10 %127 2
%266 = OpCompositeExtract %10 %127 2
%267 = OpFAdd %10 %265 %266
%258 = OpCompositeConstruct %16 %261 %264 %267
%269 = OpCompositeExtract %10 %127 0
%270 = OpCompositeExtract %10 %127 0
%271 = OpFSub %10 %269 %270
%272 = OpCompositeExtract %10 %127 1
%273 = OpCompositeExtract %10 %127 1
%274 = OpFSub %10 %272 %273
%275 = OpCompositeExtract %10 %127 2
%276 = OpCompositeExtract %10 %127 2
%277 = OpFSub %10 %275 %276
%268 = OpCompositeConstruct %16 %271 %274 %277
%278 = OpCompositeConstruct %10 %22 %22 %22
%279 = OpCompositeConstruct %10 %22 %22 %22
%280 = OpCompositeConstruct %10 %22 %22 %22
%281 = OpCompositeConstruct %16 %278 %279 %280
%282 = OpCompositeConstruct %10 %22 %22 %22
%283 = OpCompositeConstruct %10 %22 %22 %22
%284 = OpCompositeConstruct %10 %22 %22 %22
%285 = OpCompositeConstruct %16 %282 %283 %284
%286 = OpCompositeConstruct %3 %20 %20 %20 %20
%287 = OpMatrixTimesVector %10 %128 %286
%288 = OpCompositeConstruct %10 %58 %58 %58
%289 = OpVectorTimesMatrix %3 %288 %128
%290 = OpMatrixTimesMatrix %16 %128 %129
OpReturn
OpFunctionEnd
%292 = OpFunction %2 None %107
%291 = OpLabel
OpBranch %297
%297 = OpLabel
%298 = OpCompositeConstruct %12 %293 %293
%299 = OpCompositeConstruct %13 %294 %294 %294
%300 = OpCompositeConstruct %12 %62 %62
%301 = OpCompositeConstruct %12 %26 %26
%302 = OpBitwiseOr %12 %300 %301
%303 = OpCompositeConstruct %13 %124 %124 %124
%304 = OpCompositeConstruct %13 %125 %125 %125
%305 = OpBitwiseOr %13 %303 %304
%306 = OpCompositeConstruct %12 %62 %62
%307 = OpCompositeConstruct %12 %26 %26
%308 = OpBitwiseAnd %12 %306 %307
%309 = OpCompositeConstruct %13 %124 %124 %124
%310 = OpCompositeConstruct %13 %125 %125 %125
%311 = OpBitwiseAnd %13 %309 %310
%312 = OpCompositeConstruct %12 %62 %62
%313 = OpCompositeConstruct %12 %26 %26
%314 = OpBitwiseXor %12 %312 %313
%315 = OpCompositeConstruct %13 %124 %124 %124
%316 = OpCompositeConstruct %13 %125 %125 %125
%317 = OpBitwiseXor %13 %315 %316
%318 = OpCompositeConstruct %12 %62 %62
%319 = OpCompositeConstruct %15 %125 %125
%320 = OpShiftLeftLogical %12 %318 %319
%321 = OpCompositeConstruct %13 %124 %124 %124
%322 = OpCompositeConstruct %13 %125 %125 %125
%323 = OpShiftLeftLogical %13 %321 %322
%324 = OpCompositeConstruct %12 %62 %62
%325 = OpCompositeConstruct %15 %125 %125
%326 = OpShiftRightArithmetic %12 %324 %325
%327 = OpCompositeConstruct %13 %124 %124 %124
%328 = OpCompositeConstruct %13 %125 %125 %125
%329 = OpShiftRightLogical %13 %327 %328
OpReturn
OpFunctionEnd
%331 = OpFunction %2 None %107
%330 = OpLabel
OpBranch %332
%332 = OpLabel
%333 = OpCompositeConstruct %12 %62 %62
%334 = OpCompositeConstruct %12 %26 %26
%335 = OpIEqual %11 %333 %334
%336 = OpCompositeConstruct %13 %124 %124 %124
%337 = OpCompositeConstruct %13 %125 %125 %125
%338 = OpIEqual %100 %336 %337
%339 = OpCompositeConstruct %3 %58 %58 %58 %58
%340 = OpCompositeConstruct %3 %20 %20 %20 %20
%341 = OpFOrdEqual %7 %339 %340
%342 = OpCompositeConstruct %12 %62 %62
%343 = OpCompositeConstruct %12 %26 %26
%344 = OpINotEqual %11 %342 %343
%345 = OpCompositeConstruct %13 %124 %124 %124
%346 = OpCompositeConstruct %13 %125 %125 %125
%347 = OpINotEqual %100 %345 %346
%348 = OpCompositeConstruct %3 %58 %58 %58 %58
%349 = OpCompositeConstruct %3 %20 %20 %20 %20
%350 = OpFOrdNotEqual %7 %348 %349
%351 = OpCompositeConstruct %12 %62 %62
%352 = OpCompositeConstruct %12 %26 %26
%353 = OpSLessThan %11 %351 %352
%354 = OpCompositeConstruct %13 %124 %124 %124
%355 = OpCompositeConstruct %13 %125 %125 %125
%356 = OpULessThan %100 %354 %355
%357 = OpCompositeConstruct %3 %58 %58 %58 %58
%358 = OpCompositeConstruct %3 %20 %20 %20 %20
%359 = OpFOrdLessThan %7 %357 %358
%360 = OpCompositeConstruct %12 %62 %62
%361 = OpCompositeConstruct %12 %26 %26
%362 = OpSLessThanEqual %11 %360 %361
%363 = OpCompositeConstruct %13 %124 %124 %124
%364 = OpCompositeConstruct %13 %125 %125 %125
%365 = OpULessThanEqual %100 %363 %364
%366 = OpCompositeConstruct %3 %58 %58 %58 %58
%367 = OpCompositeConstruct %3 %20 %20 %20 %20
%368 = OpFOrdLessThanEqual %7 %366 %367
%369 = OpCompositeConstruct %12 %62 %62
%370 = OpCompositeConstruct %12 %26 %26
%371 = OpSGreaterThan %11 %369 %370
%372 = OpCompositeConstruct %13 %124 %124 %124
%373 = OpCompositeConstruct %13 %125 %125 %125
%374 = OpUGreaterThan %100 %372 %373
%375 = OpCompositeConstruct %3 %58 %58 %58 %58
%376 = OpCompositeConstruct %3 %20 %20 %20 %20
%377 = OpFOrdGreaterThan %7 %375 %376
%378 = OpCompositeConstruct %12 %62 %62
%379 = OpCompositeConstruct %12 %26 %26
%380 = OpSGreaterThanEqual %11 %378 %379
%381 = OpCompositeConstruct %13 %124 %124 %124
%382 = OpCompositeConstruct %13 %125 %125 %125
%383 = OpUGreaterThanEqual %100 %381 %382
%384 = OpCompositeConstruct %3 %58 %58 %58 %58
%385 = OpCompositeConstruct %3 %20 %20 %20 %20
%386 = OpFOrdGreaterThanEqual %7 %384 %385
OpReturn
OpFunctionEnd
%394 = OpFunction %2 None %107
%393 = OpLabel
%387 = OpVariable %388 Function %389
%390 = OpVariable %391 Function %392
OpBranch %395
%395 = OpLabel
OpStore %387 %26
%396 = OpLoad %6 %387
%397 = OpIAdd %6 %396 %26
OpStore %387 %397
%398 = OpLoad %6 %387
%399 = OpISub %6 %398 %26
OpStore %387 %399
%400 = OpLoad %6 %387
%401 = OpLoad %6 %387
%402 = OpIMul %6 %401 %400
OpStore %387 %402
%403 = OpLoad %6 %387
%404 = OpLoad %6 %387
%405 = OpSDiv %6 %404 %403
OpStore %387 %405
%406 = OpLoad %6 %387
%407 = OpSRem %6 %406 %26
OpStore %387 %407
%408 = OpLoad %6 %387
%409 = OpBitwiseAnd %6 %408 %32
OpStore %387 %409
%410 = OpLoad %6 %387
%411 = OpBitwiseOr %6 %410 %32
OpStore %387 %411
%412 = OpLoad %6 %387
%413 = OpBitwiseXor %6 %412 %32
OpStore %387 %413
%414 = OpLoad %6 %387
%415 = OpShiftLeftLogical %6 %414 %124
OpStore %387 %415
%416 = OpLoad %6 %387
%417 = OpShiftRightArithmetic %6 %416 %125
OpStore %387 %417
%418 = OpLoad %6 %387
%419 = OpIAdd %6 %418 %26
OpStore %387 %419
%420 = OpLoad %6 %387
%421 = OpISub %6 %420 %26
OpStore %387 %421
OpStore %390 %392
%423 = OpAccessChain %422 %390 %125
%424 = OpLoad %6 %423
%425 = OpIAdd %6 %424 %26
%426 = OpAccessChain %422 %390 %125
OpStore %426 %425
%427 = OpAccessChain %422 %390 %125
%428 = OpLoad %6 %427
%429 = OpISub %6 %428 %26
%430 = OpAccessChain %422 %390 %125
OpStore %430 %429
OpReturn
OpFunctionEnd
%432 = OpFunction %2 None %107
%431 = OpLabel
OpBranch %437
%437 = OpLabel
OpReturn
OpFunctionEnd
%439 = OpFunction %2 None %107
%438 = OpLabel
OpBranch %440
%440 = OpLabel
%441 = OpFunctionCall %3 %29
%442 = OpFunctionCall %3 %57
%443 = OpCompositeConstruct %10 %20 %20 %20
%444 = OpFunctionCall %10 %97 %443
%445 = OpFunctionCall %2 %106
%446 = OpFunctionCall %2 %119
%447 = OpFunctionCall %2 %292
%448 = OpFunctionCall %2 %331
%449 = OpFunctionCall %2 %394
OpReturn
OpFunctionEnd