1 ; COM: Tests to verify that the entry basic block is always placed at the beginning of its section.
3 ; RUN: echo 'f foo' >> %t1
4 ; RUN: echo 'c2 0' >> %t1
5 ; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t1 -O0 | FileCheck %s -check-prefix=LINUX-SECTIONS1
8 ; RUN: echo 'f foo' >> %t2
9 ; RUN: echo 'c2' >> %t2
10 ; RUN: llc < %s -mtriple=x86_64-pc-linux -function-sections -basic-block-sections=%t2 -O0 | FileCheck %s -check-prefix=LINUX-SECTIONS2
13 define void @foo(i1 %a, i1 %b) {
15 br i1 %a, label %b1, label %b2
24 ;; Check that %b0 is emitted at the beginning of the function.
25 ; LINUX-SECTIONS1: .section .text.foo,"ax",@progbits
26 ; LINUX-SECTIONS1: foo:
27 ; LINUX-SECTIONS1: # %bb.0: # %b0
28 ; LINUX-SECTIONS1: jne foo.cold
29 ; LINUX-SECTIONS1: # %bb.2: # %b2
30 ; LINUX-SECTIONS1: retq
31 ; LINUX-SECTIONS1: .section .text.split.foo,"ax",@progbits
32 ; LINUX-SECTIONS1: foo.cold: # %b1
33 ; LINUX-SECTIONS1: retq
35 ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits
36 ; LINUX-SECTIONS2: foo:
37 ; LINUX-SECTIONS2: # %bb.0: # %b0
38 ; LINUX-SECTIONS2: je foo.__part.0
39 ; LINUX-SECTIONS2: # %bb.1: # %b1
40 ; LINUX-SECTIONS2: retq
41 ; LINUX-SECTIONS2: .section .text.foo,"ax",@progbits
42 ; LINUX-SECTIONS2: foo.__part.0: # %b2
43 ; LINUX-SECTIONS2: retq