xref: /llvm-project/bolt/test/X86/block-reordering.test (revision 11791ae7b0b05b8bd8d806331ff51da618912cf8)
1*11791ae7SSayhaan Siddiqui## Tests whether llvm-bolt is able to reorder blocks and fix branches
2*11791ae7SSayhaan Siddiqui## according to the new function layout.
38331f75eSAmir Ayupov
48331f75eSAmir AyupovRUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe
5ab14eb23SAmir AyupovRUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata \
6d648aa1bSMaksim PanchenkoRUN:   --reorder-blocks=normal --print-finalized  2>&1 | FileCheck %s \
7d648aa1bSMaksim PanchenkoRUN:   --check-prefix=CHECK
88331f75eSAmir Ayupov
98331f75eSAmir AyupovCHECK:    Binary Function "usqrt"
108331f75eSAmir AyupovCHECK:    BB Layout :         .LBB{{.*}}, .Ltmp{{.*}}, .Ltmp{{.*}}, .LFT{{.*}}, .LFT{{.*}}
118331f75eSAmir AyupovCHECK:    .LBB{{.*}}
128331f75eSAmir AyupovCHECK:      Exec Count : 199
138331f75eSAmir AyupovCHECK:        {{.*}}:   movl    $0x20, %r8d
148331f75eSAmir AyupovCHECK:        {{.*}}:   xorl    %eax, %eax
158331f75eSAmir AyupovCHECK:        {{.*}}:   xorl    %edx, %edx
168331f75eSAmir AyupovCHECK:        {{.*}}:   jmp     .Ltmp{{.*}}
178331f75eSAmir AyupovCHECK:      Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)
188331f75eSAmir AyupovCHECK:    .Ltmp{{.*}}
198331f75eSAmir AyupovCHECK:      Exec Count : 4711
208331f75eSAmir AyupovCHECK:      Predecessors: .Ltmp{{.*}}, .LFT{{.*}}
218331f75eSAmir AyupovCHECK:        {{.*}}:   subl    $0x1, %r8d
228331f75eSAmir AyupovCHECK:        {{.*}}:   je      .LFT{{.*}}
238331f75eSAmir AyupovCHECK:      Successors: .LFT{{.*}} (mispreds: 0, count: 0), .Ltmp{{.*}} (mispreds: 33, count: 4711)
248331f75eSAmir AyupovCHECK:    .Ltmp{{.*}}
258331f75eSAmir AyupovCHECK:      Exec Count : 4711
268331f75eSAmir AyupovCHECK:      Predecessors: .Ltmp{{.*}}, .LBB{{.*}}
278331f75eSAmir AyupovCHECK:        {{.*}}:   movq    %rdi, %rcx
288331f75eSAmir AyupovCHECK:        {{.*}}:   addq    %rax, %rax
298331f75eSAmir AyupovCHECK:        {{.*}}:   shlq    $0x2, %rdi
308331f75eSAmir AyupovCHECK:        {{.*}}:   andl    $0xc0000000, %ecx
318331f75eSAmir AyupovCHECK:        {{.*}}:   shrq    $0x1e, %rcx
328331f75eSAmir AyupovCHECK:        {{.*}}:   leaq    (%rcx,%rdx,4), %rdx
338331f75eSAmir AyupovCHECK:        {{.*}}:   leaq    0x1(%rax,%rax), %rcx
348331f75eSAmir AyupovCHECK:        {{.*}}:   cmpq    %rcx, %rdx
358331f75eSAmir AyupovCHECK:        {{.*}}:   jb      .Ltmp{{.*}}
368331f75eSAmir AyupovCHECK:      Successors: .Ltmp{{.*}} (mispreds: 171, count: 2886), .LFT{{.*}} (mispreds: 0, count: 0)
378331f75eSAmir AyupovCHECK:    .LFT{{.*}}
388331f75eSAmir AyupovCHECK:      Exec Count : 0
398331f75eSAmir AyupovCHECK:      Predecessors: .Ltmp{{.*}}
408331f75eSAmir AyupovCHECK:        {{.*}}:   subq    %rcx, %rdx
418331f75eSAmir AyupovCHECK:        {{.*}}:   addq    $0x1, %rax
428331f75eSAmir AyupovCHECK:        {{.*}}:   jmp     .Ltmp{{.*}}
438331f75eSAmir AyupovCHECK:      Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)
448331f75eSAmir AyupovCHECK:    .LFT{{.*}}
458331f75eSAmir AyupovCHECK:      Exec Count : 0
468331f75eSAmir AyupovCHECK:      Predecessors: .Ltmp{{.*}}
478331f75eSAmir AyupovCHECK:        {{.*}}:   movq    %rax, (%rsi)
488331f75eSAmir AyupovCHECK:        {{.*}}:   retq
49