[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Analysis / LazyCallGraph / blockaddress.ll
blob4ce41c500fba867637c78d1ae24234656ed44bd5
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -passes="cgscc(function(sccp,simplifycfg))" < %s -S | FileCheck %s
4 define i32 @baz(i32 %y, i1 %b) {
5 ; CHECK-LABEL: @baz(
6 ; CHECK-NEXT:  entry:
7 ; CHECK-NEXT:    br i1 [[B:%.*]], label [[LAB:%.*]], label [[FOR_COND:%.*]]
8 ; CHECK:       for.cond:
9 ; CHECK-NEXT:    [[P_0:%.*]] = phi ptr [ null, [[FOR_COND]] ], [ blockaddress(@baz, [[LAB]]), [[ENTRY:%.*]] ]
10 ; CHECK-NEXT:    [[INCDEC_PTR:%.*]] = getelementptr inbounds i8, ptr [[P_0]], i64 1
11 ; CHECK-NEXT:    br label [[FOR_COND]]
12 ; CHECK:       lab:
13 ; CHECK-NEXT:    ret i32 0
15 entry:
16   br i1 %b, label %lab, label %for.cond.preheader
18 for.cond.preheader:
19   br label %for.cond
21 for.cond:
22   %p.0 = phi ptr [ null, %for.cond ], [ blockaddress(@baz, %lab), %for.cond.preheader ]
23   %incdec.ptr = getelementptr inbounds i8, ptr %p.0, i64 1
24   br label %for.cond
26 lab:
27   ret i32 0