[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / fold-branch-to-common-dest-free-cost.ll
blob27df5ec4458281ed09bddc9dc796b3f0faa5c928
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -S -passes=simplifycfg -bonus-inst-threshold=1 | FileCheck %s
4 declare i8* @llvm.strip.invariant.group.p0i8(i8*)
6 declare void @g1()
7 declare void @g2()
9 define void @f(i8* %a, i8* %b, i1 %c, i1 %d, i1 %e) {
10 ; CHECK-LABEL: @f(
11 ; CHECK-NEXT:    [[A1:%.*]] = call i8* @llvm.strip.invariant.group.p0i8(i8* [[A:%.*]])
12 ; CHECK-NEXT:    [[B1:%.*]] = call i8* @llvm.strip.invariant.group.p0i8(i8* [[B:%.*]])
13 ; CHECK-NEXT:    [[I:%.*]] = icmp eq i8* [[A1]], [[B1]]
14 ; CHECK-NEXT:    [[OR_COND:%.*]] = select i1 [[C:%.*]], i1 [[I]], i1 false
15 ; CHECK-NEXT:    br i1 [[OR_COND]], label [[L2:%.*]], label [[L3:%.*]]
16 ; CHECK:       l2:
17 ; CHECK-NEXT:    call void @g1()
18 ; CHECK-NEXT:    br label [[RET:%.*]]
19 ; CHECK:       l3:
20 ; CHECK-NEXT:    call void @g2()
21 ; CHECK-NEXT:    br label [[RET]]
22 ; CHECK:       ret:
23 ; CHECK-NEXT:    ret void
25   br i1 %c, label %l1, label %l3
26 l1:
27   %a1 = call i8* @llvm.strip.invariant.group.p0i8(i8* %a)
28   %b1 = call i8* @llvm.strip.invariant.group.p0i8(i8* %b)
29   %i = icmp eq i8* %a1, %b1
30   br i1 %i, label %l2, label %l3
31 l2:
32   call void @g1()
33   br label %ret
34 l3:
35   call void @g2()
36   br label %ret
37 ret:
38   ret void