[llvm-shlib] Fix the version naming style of libLLVM for Windows (#85710)
[llvm-project.git] / bolt / test / X86 / branch-data.test
blob0c64caaee8a50b0a9df6191d9366cdb4ace19efc
1 # Checks that llvm-bolt is able to read data generated by perf2bolt and update
2 # the CFG edges accordingly with absolute number of branches and mispredictions.
3 # Also checks that llvm-bolt disassembler and CFG builder is working properly.
5 RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe
6 RUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata --print-cfg | FileCheck %s
8 CHECK:    Binary Function "usqrt"
9 CHECK:      State       : CFG constructed
10 CHECK:      Address     : 0x401170
11 CHECK:      Size        : 0x43
12 CHECK:      MaxSize     : 0x43
13 CHECK:      Offset      : 0xcb0
14 CHECK:      Section     : .text
15 CHECK:      IsSimple    : 1
16 CHECK:      BB Count    : 5
17 CHECK:      Exec Count  : 199
18 CHECK:      Branch Count: 7689
19 CHECK:    }
20 CHECK:    .LBB{{.*}}
21 CHECK:      Exec Count : 199
22 CHECK:        {{.*}}:   movl    $0x20, %r8d
23 CHECK:        {{.*}}:   xorl    %eax, %eax
24 CHECK:        {{.*}}:   xorl    %edx, %edx
25 CHECK:      Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)
26 CHECK:    .Ltmp{{.*}}
27 CHECK:      Exec Count : 4711
28 CHECK:      Predecessors: .Ltmp{{.*}}, .LBB{{.*}}
29 CHECK:        {{.*}}:   movq    %rdi, %rcx
30 CHECK:        {{.*}}:   addq    %rax, %rax
31 CHECK:        {{.*}}:   shlq    $0x2, %rdi
32 CHECK:        {{.*}}:   andl    $0xc0000000, %ecx
33 CHECK:        {{.*}}:   shrq    $0x1e, %rcx
34 CHECK:        {{.*}}:   leaq    (%rcx,%rdx,4), %rdx
35 CHECK:        {{.*}}:   leaq    0x1(%rax,%rax), %rcx
36 CHECK:        {{.*}}:   cmpq    %rcx, %rdx
37 CHECK:        {{.*}}:   jb      .Ltmp{{.*}}
38 CHECK:      Successors: .Ltmp{{.*}} (mispreds: 171, count: 2886), .LFT{{.*}} (mispreds: 0, count: 0)
39 CHECK:    .LFT{{.*}}
40 CHECK:      Exec Count : 0
41 CHECK:      Predecessors: .Ltmp{{.*}}
42 CHECK:        {{.*}}:   subq    %rcx, %rdx
43 CHECK:        {{.*}}:   addq    $0x1, %rax
44 CHECK:      Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)
45 CHECK:    .Ltmp{{.*}}
46 CHECK:      Exec Count : 4711
47 CHECK:      Predecessors: .Ltmp{{.*}}, .LFT{{.*}}
48 CHECK:        {{.*}}:   subl    $0x1, %r8d
49 CHECK:        {{.*}}:   jne     .Ltmp{{.*}}
50 CHECK:      Successors: .Ltmp{{.*}} (mispreds: 33, count: 4711), .LFT{{.*}} (mispreds: 0, count: 0)
51 CHECK:    .LFT{{.*}}
52 CHECK:      Exec Count : 0
53 CHECK:      Predecessors: .Ltmp{{.*}}
54 CHECK:        {{.*}}:   movq    %rax, (%rsi)
55 CHECK:        {{.*}}:   retq
56 CHECK:    End of Function "usqrt"