Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / X86 / ps4-noreturn.ll
blob2b9e10d8f77901b00add96c2b48da76e8e1abaaa
1 ; RUN: llc < %s -mtriple=x86_64-scei-ps4 | FileCheck %s
2 ; RUN: llc < %s -mtriple=x86_64-sie-ps5  | FileCheck %s
4 declare i32 @personality(...)
6 ; Check that after the (implicitly noreturn) unwind call, there is
7 ; another instruction. It was easy to produce 'ud2' so we check for that.
8 define void @foo1() personality ptr @personality {
9 ; CHECK-LABEL: foo1:
10 ; CHECK: .cfi_startproc
11 ; CHECK: callq bar
12 ; CHECK: retq
13 ; Check for 'ud2' between noreturn call and function end.
14 ; CHECK: callq _Unwind_Resume
15 ; CHECK-NEXT: ud2
16 ; CHECK-NEXT: .Lfunc_end0:
17     invoke void @bar()
18         to label %normal
19         unwind label %catch
20 normal:
21     ret void
22 catch:
23     %1 = landingpad { ptr, i32 } cleanup
24     resume { ptr, i32 } %1
27 declare void @bar() #0
29 ; Similar check after an explicit noreturn call.
30 define void @foo2() {
31 ; CHECK-LABEL: foo2:
32 ; CHECK: callq bar
33 ; CHECK-NEXT: ud2
34 ; CHECK-NEXT: .Lfunc_end1:
35     tail call void @bar()
36     unreachable
39 attributes #0 = { noreturn }