Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / CodeGen / X86 / ps4-noreturn.ll
blob4c14f21893258a7216c00023a679495e9c3fd7be
1 ; RUN: llc < %s -mtriple=x86_64-scei-ps4 | FileCheck %s
3 declare i32 @personality(...)
5 ; Check that after the (implicitly noreturn) unwind call, there is
6 ; another instruction. It was easy to produce 'ud2' so we check for that.
7 define void @foo1() personality i32 (...)* @personality {
8 ; CHECK-LABEL: foo1:
9 ; CHECK: .cfi_startproc
10 ; CHECK: callq bar
11 ; CHECK: retq
12 ; Check for 'ud2' between noreturn call and function end.
13 ; CHECK: callq _Unwind_Resume
14 ; CHECK-NEXT: ud2
15 ; CHECK-NEXT: .Lfunc_end0:
16     invoke void @bar()
17         to label %normal
18         unwind label %catch
19 normal:
20     ret void
21 catch:
22     %1 = landingpad { i8*, i32 } cleanup
23     resume { i8*, i32 } %1
26 declare void @bar() #0
28 ; Similar check after an explicit noreturn call.
29 define void @foo2() {
30 ; CHECK-LABEL: foo2:
31 ; CHECK: callq bar
32 ; CHECK-NEXT: ud2
33 ; CHECK-NEXT: .Lfunc_end1:
34     tail call void @bar()
35     unreachable
38 attributes #0 = { noreturn }