Add a pass to collect dropped var stats for MIR (#120501)
[llvm-project.git] / llvm / test / Other / spirv-sim / branch.spv
blob7ee0ebcad249dd2ea3e739ba49981448b9f0014f
1 ; RUN: %if spirv-tools %{ spirv-as %s -o - | spirv-val - %}
2 ; RUN: spirv-sim --function=simple --wave=3 --expects=5,6,6 -i %s
3                OpCapability Shader
4                OpCapability GroupNonUniform
5                OpMemoryModel Logical GLSL450
6                OpEntryPoint GLCompute %main "main" %WaveIndex
7                OpExecutionMode %main LocalSize 1 1 1
8                OpSource HLSL 670
9                OpName %simple "simple"
10                OpName %main "main"
11                 OpDecorate %WaveIndex BuiltIn SubgroupLocalInvocationId
12         %int = OpTypeInt 32 1
13        %uint = OpTypeInt 32 0
14        %bool = OpTypeBool
15       %int_2 = OpConstant %int 2
16       %int_5 = OpConstant %int 5
17       %int_6 = OpConstant %int 6
18      %uint_0 = OpConstant %uint 0
19        %void = OpTypeVoid
20   %main_type = OpTypeFunction %void
21 %simple_type = OpTypeFunction %int
22   %uint_iptr = OpTypePointer Input %uint
23   %WaveIndex = OpVariable %uint_iptr Input
24        %main = OpFunction %void None %main_type
25       %entry = OpLabel
26                OpReturn
27                OpFunctionEnd
28      %simple = OpFunction %int None %simple_type
29           %1 = OpLabel
30           %2 = OpLoad %uint %WaveIndex
31           %3 = OpIEqual %bool %uint_0 %2
32                OpSelectionMerge %merge None
33                OpBranchConditional %3 %true %false
34        %true = OpLabel
35                OpBranch %merge
36       %false = OpLabel
37                OpBranch %merge
38       %merge = OpLabel
39           %4 = OpPhi %int %int_5 %true %int_6 %false
40                OpReturnValue %4
41                OpFunctionEnd