49 lines · plain
1## Tests whether llvm-bolt is able to reorder blocks and fix branches2## according to the new function layout.3 4RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe5RUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata \6RUN: --reorder-blocks=normal --print-finalized 2>&1 | FileCheck %s \7RUN: --check-prefix=CHECK8 9CHECK: Binary Function "usqrt"10CHECK: BB Layout : .LBB{{.*}}, .Ltmp{{.*}}, .Ltmp{{.*}}, .LFT{{.*}}, .LFT{{.*}}11CHECK: .LBB{{.*}}12CHECK: Exec Count : 19913CHECK: {{.*}}: movl $0x20, %r8d14CHECK: {{.*}}: xorl %eax, %eax15CHECK: {{.*}}: xorl %edx, %edx16CHECK: {{.*}}: jmp .Ltmp{{.*}}17CHECK: Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)18CHECK: .Ltmp{{.*}}19CHECK: Exec Count : 471120CHECK: Predecessors: .Ltmp{{.*}}, .LFT{{.*}}21CHECK: {{.*}}: subl $0x1, %r8d22CHECK: {{.*}}: je .LFT{{.*}}23CHECK: Successors: .LFT{{.*}} (mispreds: 0, count: 0), .Ltmp{{.*}} (mispreds: 33, count: 4711)24CHECK: .Ltmp{{.*}}25CHECK: Exec Count : 471126CHECK: Predecessors: .Ltmp{{.*}}, .LBB{{.*}}27CHECK: {{.*}}: movq %rdi, %rcx28CHECK: {{.*}}: addq %rax, %rax29CHECK: {{.*}}: shlq $0x2, %rdi30CHECK: {{.*}}: andl $0xc0000000, %ecx31CHECK: {{.*}}: shrq $0x1e, %rcx32CHECK: {{.*}}: leaq (%rcx,%rdx,4), %rdx33CHECK: {{.*}}: leaq 0x1(%rax,%rax), %rcx34CHECK: {{.*}}: cmpq %rcx, %rdx35CHECK: {{.*}}: jb .Ltmp{{.*}}36CHECK: Successors: .Ltmp{{.*}} (mispreds: 171, count: 2886), .LFT{{.*}} (mispreds: 0, count: 0)37CHECK: .LFT{{.*}}38CHECK: Exec Count : 039CHECK: Predecessors: .Ltmp{{.*}}40CHECK: {{.*}}: subq %rcx, %rdx41CHECK: {{.*}}: addq $0x1, %rax42CHECK: {{.*}}: jmp .Ltmp{{.*}}43CHECK: Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)44CHECK: .LFT{{.*}}45CHECK: Exec Count : 046CHECK: Predecessors: .Ltmp{{.*}}47CHECK: {{.*}}: movq %rax, (%rsi)48CHECK: {{.*}}: retq49