xref: /llvm-project/llvm/test/Transforms/BDCE/dce-pure.ll (revision c0429c60e916899d2fd864f46b0738f1a9081ded)
1; RUN: opt -passes=bdce -S < %s | FileCheck %s
2
3declare i32 @strlen(ptr) readonly nounwind willreturn
4
5define void @test1() {
6  call i32 @strlen( ptr null )
7  ret void
8
9; CHECK-LABEL: @test1
10; CHECK-NOT: call
11; CHECK: ret void
12}
13
14define i32 @test2() personality ptr @__gxx_personality_v0 {
15  ; invoke of pure function should not be deleted!
16  invoke i32 @strlen( ptr null ) readnone
17                  to label %Cont unwind label %Other
18
19Cont:           ; preds = %0
20  ret i32 0
21
22Other:          ; preds = %0
23   %exn = landingpad {ptr, i32}
24            cleanup
25  ret i32 1
26
27; CHECK-LABEL: @test2
28; CHECK: invoke
29; CHECK: ret i32 1
30}
31
32declare i32 @__gxx_personality_v0(...)
33
34