mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
81bb5f99ad
The data layout strings do not have any effect on llc tests and will become misleadingly out of date as we continue to update the canonical data layout, so remove them from the tests. Differential Revision: https://reviews.llvm.org/D105842
87 lines
1.5 KiB
LLVM
87 lines
1.5 KiB
LLVM
; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s
|
|
|
|
target triple = "wasm32-unknown-unknown"
|
|
|
|
; Test that switches are lowered correctly in the presence of an
|
|
; unreachable default branch target.
|
|
|
|
; CHECK-LABEL: foo:
|
|
; CHECK-NEXT: .functype foo (i32) -> (i32)
|
|
; CHECK-NEXT: block
|
|
; CHECK-NEXT: block
|
|
; CHECK-NEXT: local.get 0
|
|
; CHECK-NEXT: br_table {0, 1, 0}
|
|
; CHECK-NEXT: .LBB0_1:
|
|
; CHECK-NEXT: end_block
|
|
; CHECK-NEXT: i32.const 0
|
|
; CHECK-NEXT: return
|
|
; CHECK-NEXT: .LBB0_2:
|
|
; CHECK-NEXT: end_block
|
|
; CHECK-NEXT: i32.const 1
|
|
; CHECK-NEXT: end_function
|
|
define i32 @foo(i32 %x) {
|
|
entry:
|
|
switch i32 %x, label %unreachable [
|
|
i32 0, label %bb0
|
|
i32 1, label %bb1
|
|
]
|
|
|
|
bb0:
|
|
ret i32 0
|
|
|
|
bb1:
|
|
ret i32 1
|
|
|
|
unreachable:
|
|
unreachable
|
|
}
|
|
|
|
; CHECK-LABEL: split:
|
|
; CHECK: .functype split (i32) -> ()
|
|
; CHECK: block
|
|
; CHECK: br_if 0
|
|
; CHECK: block
|
|
; CHECK: block
|
|
; CHECK: br_table {1, 1, 0}
|
|
; CHECK: .LBB1_2
|
|
; CHECK: end_block
|
|
; CHECK: br_table {0, 0, 0, 0, 0, 0, 0, 0}
|
|
; CHECK: .LBB1_3
|
|
; CHECK: end_block
|
|
; CHECK: unreachable
|
|
; CHECK: .LBB1_4
|
|
; CHECK: end_block
|
|
; CHECK: end_function
|
|
define void @split(i8 %c) {
|
|
entry:
|
|
switch i8 %c, label %sw.default [
|
|
i8 114, label %return
|
|
i8 103, label %sw.bb1
|
|
i8 98, label %sw.bb2
|
|
i8 97, label %sw.bb3
|
|
i8 48, label %sw.bb4
|
|
i8 49, label %sw.bb5
|
|
]
|
|
|
|
sw.bb1:
|
|
unreachable
|
|
|
|
sw.bb2:
|
|
unreachable
|
|
|
|
sw.bb3:
|
|
unreachable
|
|
|
|
sw.bb4:
|
|
unreachable
|
|
|
|
sw.bb5:
|
|
unreachable
|
|
|
|
sw.default:
|
|
unreachable
|
|
|
|
return:
|
|
ret void
|
|
}
|