[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-xcoff-funcsect.ll
blobacc521e028859559b244eb7066e849b570f48b38
1 ; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
2 ; RUN:     -mattr=-altivec -function-sections < %s | \
3 ; RUN:   FileCheck --check-prefix=ASM %s
4 ; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
5 ; RUN:     -mattr=-altivec -function-sections < %s | \
6 ; RUN:   FileCheck --check-prefix=ASM %s
8 @alias_foo = alias void (...), bitcast (void ()* @foo to void (...)*)
10 define void @foo() {
11 entry:
12   ret void
15 define hidden void @hidden_foo() {
16 entry:
17   ret void
20 define void @bar() {
21 entry:
22   call void @foo()
23   call void @static_overalign_foo()
24   call void bitcast (void (...)* @alias_foo to void ()*)()
25   call void bitcast (void (...)* @extern_foo to void ()*)()
26   call void @hidden_foo()
27   ret void
30 declare void @extern_foo(...)
32 define internal void @static_overalign_foo() align 64 {
33 entry:
34   ret void
37 ; ASM:        .csect .foo[PR],2
38 ; ASM-NEXT:     .globl  foo[DS]                         # -- Begin function foo
39 ; ASM-NEXT:     .globl  .foo[PR]
40 ; ASM-NEXT:     .align  4
41 ; ASM-NEXT:     .csect foo[DS]
42 ; ASM-NEXT:  alias_foo:                                # @foo
43 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, .foo[PR]
44 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, TOC[TC0]
45 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, 0
46 ; ASM-NEXT:     .csect .foo[PR],2
47 ; ASM-NEXT:  .alias_foo:
48 ; ASM-NEXT:  # %bb.0:                                # %entry
49 ; ASM-NEXT:     blr
50 ; ASM:        .csect .hidden_foo[PR],2
51 ; ASM-NEXT:     .globl  hidden_foo[DS],hidden           # -- Begin function hidden_foo
52 ; ASM-NEXT:     .globl  .hidden_foo[PR],hidden
53 ; ASM-NEXT:     .align  4
54 ; ASM-NEXT:     .csect hidden_foo[DS]
55 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, .hidden_foo[PR]              # @hidden_foo
56 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, TOC[TC0]
57 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, 0
58 ; ASM-NEXT:     .csect .hidden_foo[PR]
59 ; ASM-NEXT:  # %bb.0:                                # %entry
60 ; ASM-NEXT:     blr
61 ; ASM:        .csect .bar[PR],2
62 ; ASM-NEXT:     .globl  bar[DS]                         # -- Begin function bar
63 ; ASM-NEXT:     .globl  .bar[PR]
64 ; ASM-NEXT:     .align  4
65 ; ASM-NEXT:     .csect bar[DS]
66 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, .bar[PR]                     # @bar
67 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, TOC[TC0]
68 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, 0
69 ; ASM-NEXT:     .csect .bar[PR],2
70 ; ASM-NEXT:  # %bb.0:                                # %entry
71 ; ASM:        bl .foo[PR]
72 ; ASM-NEXT:     nop
73 ; ASM-NEXT:     bl .static_overalign_foo[PR]
74 ; ASM-NEXT:     nop
75 ; ASM-NEXT:     bl .alias_foo
76 ; ASM-NEXT:     nop
77 ; ASM-NEXT:     bl .extern_foo
78 ; ASM-NEXT:     nop
79 ; ASM-NEXT:     bl .hidden_foo[PR]
80 ; ASM-NEXT:     nop
81 ; ASM:        .csect .static_overalign_foo[PR],6
82 ; ASM-NEXT:     .lglobl static_overalign_foo[DS]                  # -- Begin function static_overalign_foo
83 ; ASM-NEXT:     .lglobl .static_overalign_foo[PR]
84 ; ASM-NEXT:     .align  6
85 ; ASM-NEXT:     .csect static_overalign_foo[DS]
86 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, .static_overalign_foo[PR]              # @static_overalign_foo
87 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, TOC[TC0]
88 ; ASM-NEXT:     .vbyte  {{[0-9]+}}, 0
89 ; ASM-NEXT:     .csect .static_overalign_foo[PR],6
90 ; ASM-NEXT:  # %bb.0:                                # %entry
91 ; ASM-NEXT:     blr
92 ; ASM:        .extern   .extern_foo
93 ; ASM-NEXT:     .extern extern_foo[DS]
94 ; ASM-NEXT:     .globl  alias_foo
95 ; ASM-NEXT:     .globl  .alias_foo