wgpu/tests/out/spv/control-flow.spvasm
2021-09-21 17:16:51 -04:00

135 lines
2.4 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 67
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %42 "main" %39
OpExecutionMode %42 LocalSize 1 1 1
OpDecorate %39 BuiltIn GlobalInvocationId
%2 = OpTypeVoid
%4 = OpTypeInt 32 1
%3 = OpConstant %4 1
%5 = OpConstant %4 0
%6 = OpConstant %4 2
%7 = OpConstant %4 3
%9 = OpTypeInt 32 0
%8 = OpConstant %9 0
%10 = OpTypeVector %9 3
%14 = OpTypeFunction %2 %4
%20 = OpTypeFunction %2
%37 = OpTypePointer Function %4
%40 = OpTypePointer Input %10
%39 = OpVariable %40 Input
%44 = OpConstant %9 2
%45 = OpConstant %9 1
%46 = OpConstant %9 72
%47 = OpConstant %9 264
%13 = OpFunction %2 None %14
%12 = OpFunctionParameter %4
%11 = OpLabel
OpBranch %15
%15 = OpLabel
OpSelectionMerge %16 None
OpSwitch %12 %17
%17 = OpLabel
OpBranch %16
%16 = OpLabel
OpReturn
OpFunctionEnd
%19 = OpFunction %2 None %20
%18 = OpLabel
OpBranch %21
%21 = OpLabel
OpSelectionMerge %22 None
OpSwitch %5 %23 0 %24
%24 = OpLabel
OpBranch %22
%23 = OpLabel
OpBranch %22
%22 = OpLabel
OpReturn
OpFunctionEnd
%27 = OpFunction %2 None %14
%26 = OpFunctionParameter %4
%25 = OpLabel
OpBranch %28
%28 = OpLabel
OpBranch %29
%29 = OpLabel
OpLoopMerge %30 %32 None
OpBranch %31
%31 = OpLabel
OpSelectionMerge %33 None
OpSwitch %26 %34 1 %35
%35 = OpLabel
OpBranch %32
%34 = OpLabel
OpBranch %33
%33 = OpLabel
OpBranch %32
%32 = OpLabel
OpBranch %29
%30 = OpLabel
OpReturn
OpFunctionEnd
%42 = OpFunction %2 None %20
%38 = OpLabel
%36 = OpVariable %37 Function
%41 = OpLoad %10 %39
OpBranch %43
%43 = OpLabel
OpControlBarrier %44 %45 %46
OpControlBarrier %44 %44 %47
OpSelectionMerge %48 None
OpSwitch %3 %49
%49 = OpLabel
OpStore %36 %3
OpBranch %48
%48 = OpLabel
%50 = OpLoad %4 %36
OpSelectionMerge %51 None
OpSwitch %50 %52 1 %53 2 %54 3 %55 4 %56
%53 = OpLabel
OpStore %36 %5
OpBranch %51
%54 = OpLabel
OpStore %36 %3
OpBranch %51
%55 = OpLabel
OpStore %36 %6
OpBranch %56
%56 = OpLabel
OpBranch %51
%52 = OpLabel
OpStore %36 %7
OpBranch %51
%51 = OpLabel
OpSelectionMerge %57 None
OpSwitch %8 %58 0 %59
%59 = OpLabel
OpBranch %57
%58 = OpLabel
OpBranch %57
%57 = OpLabel
%60 = OpLoad %4 %36
OpSelectionMerge %61 None
OpSwitch %60 %62 1 %63 2 %64 3 %65 4 %66
%63 = OpLabel
OpStore %36 %5
OpBranch %61
%64 = OpLabel
OpStore %36 %3
OpReturn
%65 = OpLabel
OpStore %36 %6
OpBranch %66
%66 = OpLabel
OpReturn
%62 = OpLabel
OpStore %36 %7
OpReturn
%61 = OpLabel
OpReturn
OpFunctionEnd