Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / SPIRV / branching / Two_OpSwitch_same_register.ll
blob19c11ff64476b9a4c38105876db87b1d93922194
1 ; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
3 define spir_kernel void @test_two_switch_same_register(i32 %value) {
4 ; CHECK-SPIRV:      OpSwitch %[[#REGISTER:]] %[[#DEFAULT1:]] 1 %[[#CASE1:]] 0 %[[#CASE2:]]
5   switch i32 %value, label %default1 [
6     i32 1, label %case1
7     i32 0, label %case2
8   ]
10 ; CHECK-SPIRV:      %[[#CASE1]] = OpLabel
11 case1:
12 ; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT1]]
13   br label %default1
15 ; CHECK-SPIRV:      %[[#CASE2]] = OpLabel
16 case2:
17 ; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT1]]
18   br label %default1
20 ; CHECK-SPIRV:      %[[#DEFAULT1]] = OpLabel
21 default1:
22 ; CHECK-SPIRV-NEXT:      OpSwitch %[[#REGISTER]] %[[#DEFAULT2:]] 0 %[[#CASE3:]] 1 %[[#CASE4:]]
23   switch i32 %value, label %default2 [
24     i32 0, label %case3
25     i32 1, label %case4
26   ]
28 ; CHECK-SPIRV:      %[[#CASE3]] = OpLabel
29 case3:
30 ; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT2]]
31   br label %default2
33 ; CHECK-SPIRV:      %[[#CASE4]] = OpLabel
34 case4:
35 ; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT2]]
36   br label %default2
38 ; CHECK-SPIRV:      %[[#DEFAULT2]] = OpLabel
39 default2:
40 ; CHECK-SPIRV-NEXT: OpReturn
41   ret void