1; RUN: llc < %s -mtriple=x86_64-scei-ps4 | FileCheck %s 2 3declare i32 @personality(...) 4 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. 7define 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 19normal: 20 ret void 21catch: 22 %1 = landingpad { i8*, i32 } cleanup 23 resume { i8*, i32 } %1 24} 25 26declare void @bar() #0 27 28; Similar check after an explicit noreturn call. 29define 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 36} 37 38attributes #0 = { noreturn } 39