1# Test random function splitting option
2
3# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o
4# RUN: %clang %cflags %t.o -o %t.exe
5# RUN: llvm-bolt %t.exe -o %t.out --split-functions --split-random \
6# RUN:     --print-finalized --print-only=two_block --bolt-seed=7 2>&1 | \
7# RUN:     FileCheck %s
8
9# CHECK: Binary Function "two_block"
10# CHECK:   IsSplit     :
11# CHECK-SAME: {{ 1$}}
12
13        .text
14        .globl  single_block
15        .type   single_block, @function
16single_block:
17        ret
18        .size   single_block, .-single_block
19
20
21        .globl  two_block
22        .type   two_block, @function
23two_block:
24.L3:
25        subl    $1, %edi
26        testl   %edi, %edi
27        jg      .L3
28        jmp     .L4
29.L4:
30        subl    $1, %edi
31        subl    $1, %edi
32        subl    $1, %edi
33        subl    $1, %edi
34        ret
35        .size   two_block, .-two_block
36
37
38        .globl  main
39        .type   main, @function
40main:
41        call    single_block
42        movl    $10, %edi
43        call    two_block
44        ret
45        .size   main, .-main
46