1 ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
2 ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
4 define void @test_switch_with_unreachable_block(i1 %a) {
5 %value = zext i1 %a to i32
6 ; CHECK-SPIRV: OpSwitch %[[#]] %[[#UNREACHABLE:]] 0 %[[#REACHABLE:]] 1 %[[#REACHABLE:]]
7 switch i32 %value, label %unreachable [
8 i32 0, label %reachable
9 i32 1, label %reachable
12 ; CHECK-SPIRV-NEXT: %[[#REACHABLE]] = OpLabel
14 ; CHECK-SPIRV-NEXT: OpReturn
17 ; CHECK-SPIRV: %[[#UNREACHABLE]] = OpLabel
18 ; CHECK-SPIRV-NEXT: OpUnreachable