[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Other / spirv-sim / switch.spv
blob83dc56cecef2aa66cf1104137cbbe6e651155bb7
1 ; RUN: %if spirv-tools %{ spirv-as %s -o - | spirv-val - %}
2 ; RUN: spirv-sim --function=simple --wave=4 --expects=0,1,2,0 -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_0 = OpConstant %int 0
16       %int_1 = OpConstant %int 1
17       %int_2 = OpConstant %int 2
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                OpSelectionMerge %merge None
32                OpSwitch %2 %default 1 %case_1 2 %case_2
33     %default = OpLabel
34                OpBranch %merge
35      %case_1 = OpLabel
36                OpBranch %merge
37      %case_2 = OpLabel
38                OpBranch %merge
39       %merge = OpLabel
40           %4 = OpPhi %int %int_0 %default %int_1 %case_1 %int_2 %case_2
41                OpReturnValue %4
42                OpFunctionEnd