1; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s
2
3target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
4target triple = "wasm32-unknown-unknown"
5
6; Test that switches are lowered correctly in the presence of an
7; unreachable default branch target.
8
9; CHECK-LABEL: foo:
10; CHECK-NEXT:    .functype foo (i32) -> (i32)
11; CHECK-NEXT:    block
12; CHECK-NEXT:    block
13; CHECK-NEXT:    local.get 0
14; CHECK-NEXT:    br_table {0, 1, 0}
15; CHECK-NEXT:  .LBB0_1:
16; CHECK-NEXT:    end_block
17; CHECK-NEXT:    i32.const 0
18; CHECK-NEXT:    return
19; CHECK-NEXT:  .LBB0_2:
20; CHECK-NEXT:    end_block
21; CHECK-NEXT:    i32.const 1
22; CHECK-NEXT:    end_function
23define i32 @foo(i32 %x) {
24entry:
25  switch i32 %x, label %unreachable [
26    i32 0, label %bb0
27    i32 1, label %bb1
28  ]
29
30bb0:
31  ret i32 0
32
33bb1:
34  ret i32 1
35
36unreachable:
37  unreachable
38}
39