[ConstraintElim] Add support for decomposing gep nuw (#118639)
[llvm-project.git] / llvm / test / Transforms / SCCP / 2009-01-14-IPSCCP-Invoke.ll
blobfddd000308773663d1ba33664116962777098c03
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2 ; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
3 ; PR3325
5 define i32 @main() personality ptr @__gxx_personality_v0 {
6 ; CHECK-LABEL: define i32 @main() personality ptr @__gxx_personality_v0 {
7 ; CHECK-NEXT:    [[TMP1:%.*]] = invoke i32 @f()
8 ; CHECK-NEXT:            to label %[[UNIFIEDRETURNBLOCK:.*]] unwind label %[[LPAD:.*]]
9 ; CHECK:       [[LPAD]]:
10 ; CHECK-NEXT:    [[VAL:%.*]] = landingpad { ptr, i32 }
11 ; CHECK-NEXT:            cleanup
12 ; CHECK-NEXT:    unreachable
13 ; CHECK:       [[UNIFIEDRETURNBLOCK]]:
14 ; CHECK-NEXT:    ret i32 42
16   %tmp1 = invoke i32 @f()
17   to label %UnifiedReturnBlock unwind label %lpad
19 lpad:
20   %val = landingpad { ptr, i32 }
21   cleanup
22   unreachable
24 UnifiedReturnBlock:
25   ret i32 %tmp1
28 define internal i32 @f() {
29 ; CHECK-LABEL: define internal i32 @f() {
30 ; CHECK-NEXT:    ret i32 poison
32   ret i32 42
35 declare ptr @__cxa_begin_catch(ptr) nounwind
37 declare void @__cxa_end_catch()
39 declare i32 @__gxx_personality_v0(...)