[PowerPC] Recommit r314244 with refactoring and off by default
[llvm-core.git] / test / CodeGen / AArch64 / machine-outliner.ll
blob9b6254fb3cc1a3e8cd7c73a594aaf729b1e30d64
1 ; RUN: llc -enable-machine-outliner -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=NoODR
2 ; RUN: llc -enable-machine-outliner -enable-linkonceodr-outlining -mtriple=aarch64-apple-darwin < %s | FileCheck %s -check-prefix=ODR
4 define linkonce_odr void @fish() #0 {
5   ; CHECK-LABEL: _fish:
6   ; NoODR:      orr w8, wzr, #0x1
7   ; NoODR-NEXT: stp w8, wzr, [sp, #8]
8   ; NoODR-NEXT: orr w8, wzr, #0x2
9   ; NoODR-NEXT: str w8, [sp, #4]
10   ; NoODR-NEXT: orr w8, wzr, #0x3
11   ; NoODR-NEXT: str w8, [sp], #16
12   ; NoODR-NEXT: ret
13   ; ODR: b l_OUTLINED_FUNCTION_0
14   %1 = alloca i32, align 4
15   %2 = alloca i32, align 4
16   %3 = alloca i32, align 4
17   %4 = alloca i32, align 4
18   store i32 0, i32* %1, align 4
19   store i32 1, i32* %2, align 4
20   store i32 2, i32* %3, align 4
21   store i32 3, i32* %4, align 4
22   ret void
25 define void @cat() #0 {
26   ; CHECK-LABEL: _cat:
27   ; CHECK: b l_OUTLINED_FUNCTION_0
28   ; CHECK-NOT: ret
29   %1 = alloca i32, align 4
30   %2 = alloca i32, align 4
31   %3 = alloca i32, align 4
32   %4 = alloca i32, align 4
33   store i32 0, i32* %1, align 4
34   store i32 1, i32* %2, align 4
35   store i32 2, i32* %3, align 4
36   store i32 3, i32* %4, align 4
37   ret void
40 define void @dog() #0 {
41   ; CHECK-LABEL: _dog:
42   ; CHECK: b l_OUTLINED_FUNCTION_0
43   ; CHECK-NOT: ret
44   %1 = alloca i32, align 4
45   %2 = alloca i32, align 4
46   %3 = alloca i32, align 4
47   %4 = alloca i32, align 4
48   store i32 0, i32* %1, align 4
49   store i32 1, i32* %2, align 4
50   store i32 2, i32* %3, align 4
51   store i32 3, i32* %4, align 4
52   ret void
55 ; CHECK-LABEL: l_OUTLINED_FUNCTION_0:
56 ; CHECK:      orr w8, wzr, #0x1
57 ; CHECK-NEXT: stp w8, wzr, [sp, #8]
58 ; CHECK-NEXT: orr w8, wzr, #0x2
59 ; CHECK-NEXT: str w8, [sp, #4]
60 ; CHECK-NEXT: orr w8, wzr, #0x3
61 ; CHECK-NEXT: str w8, [sp], #16
62 ; CHECK-NEXT: ret
64 attributes #0 = { noredzone nounwind ssp uwtable "no-frame-pointer-elim"="false" "target-cpu"="cyclone" }