[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store...
[llvm-project.git] / llvm / test / CodeGen / AArch64 / cgdata-write-outline.ll
blob09ad499190ee37dcad8a9e96a80c0783e3e5fa05
1 ; This test verifies whether an outlined function is encoded into the __llvm_outline section
2 ; when the -codegen-data-generate flag is used.
4 ; Verify whether an outlined function is always created, but only encoded into the section when the flag is used.
5 ; RUN: llc -mtriple=arm64-apple-darwin -enable-machine-outliner -codegen-data-generate=true -filetype=obj %s -o %t_save
6 ; RUN: llvm-objdump -d %t_save | FileCheck %s
7 ; RUN: llvm-objdump -h %t_save | FileCheck %s --check-prefix=SECTNAME
8 ; RUN: llc -mtriple=arm64-apple-darwin -enable-machine-outliner -codegen-data-generate=false -filetype=obj %s -o %t_nosave
9 ; RUN: llvm-objdump -d  %t_nosave | FileCheck %s
10 ; RUN: llvm-objdump -h %t_nosave | FileCheck %s --check-prefix=NOSECTNAME
12 ; CHECK: _OUTLINED_FUNCTION
13 ; CHECK-NEXT:  mov
14 ; CHECK-NEXT:  mov
15 ; CHECK-NEXT:  b
16 ; SECTNAME: __llvm_outline
17 ; NOSECTNAME-NOT: __llvm_outline
19 ; Verify the content of cgdata after it has been processed with llvm-cgdata.
20 ; RUN: llvm-cgdata --merge %t_save -o %t_cgdata
21 ; RUN: llvm-cgdata --convert %t_cgdata | FileCheck %s --check-prefix=TREE
23 ; TREE: :outlined_hash_tree
24 ; TREE: ---
25 ; TREE-NEXT: 0:
26 ; TREE-NEXT:   Hash:            0x0
27 ; TREE-NEXT:   Terminals:       0
28 ; TREE-NEXT:   SuccessorIds:    [ 1 ]
29 ; TREE-NEXT: 1:
30 ; TREE-NEXT:   Hash:            {{.}}
31 ; TREE-NEXT:   Terminals:       0
32 ; TREE-NEXT:   SuccessorIds:    [ 2 ]
33 ; TREE-NEXT: 2:
34 ; TREE-NEXT:   Hash:            {{.}}
35 ; TREE-NEXT:   Terminals:       0
36 ; TREE-NEXT:   SuccessorIds:    [ 3 ]
37 ; TREE-NEXT: 3:
38 ; TREE-NEXT:   Hash:            {{.}}
39 ; TREE-NEXT:   Terminals:       2
40 ; TREE-NEXT:   SuccessorIds:    [  ]
41 ; TREE-NEXT: ...
43 declare i32 @g(i32, i32, i32)
44 define i32 @f1() minsize {
45   %1 = call i32 @g(i32 10, i32 1, i32 2);
46   ret i32 %1
48 define i32 @f2() minsize {
49   %1 = call i32 @g(i32 20, i32 1, i32 2);
50   ret i32 %1