xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-xcoff-funcsect-explicitsect.ll (revision 90454a609894ab278a87be2b9f5c49714caba8df)
1; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
2; RUN:     -xcoff-traceback-table=false -filetype=obj -function-sections -o %t.o < %s
3; RUN: llvm-readobj -s %t.o | FileCheck %s
4
5define dso_local signext i32 @foo1() section "sect" {
6entry:
7  ret i32 1
8}
9
10define dso_local signext i32 @foo2() section "sect2" {
11entry:
12  ret i32 2
13}
14
15define dso_local signext i32 @foo3()  section "sect2" {
16entry:
17  ret i32 3
18}
19
20define dso_local signext i32 @foo4() {
21entry:
22  ret i32 4
23}
24
25; CHECK:       Symbol {{[{][[:space:]] *}}Index: [[#INDX:]]{{[[:space:]] *}}Name: sect
26; CHECK-NEXT:    Value (RelocatableAddress): 0x0
27; CHECK-NEXT:    Section: .text
28; CHECK-NEXT:    Type: 0x0
29; CHECK-NEXT:    StorageClass: C_HIDEXT (0x6B)
30; CHECK-NEXT:    NumberOfAuxEntries: 1
31; CHECK-NEXT:    CSECT Auxiliary Entry {
32; CHECK-NEXT:      Index: [[#INDX+1]]
33; CHECK-NEXT:      SectionLen: 8
34; CHECK-NEXT:      ParameterHashIndex: 0x0
35; CHECK-NEXT:      TypeChkSectNum: 0x0
36; CHECK-NEXT:      SymbolAlignmentLog2: 5
37; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
38; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
39; CHECK-NEXT:      StabInfoIndex: 0x0
40; CHECK-NEXT:      StabSectNum: 0x0
41; CHECK-NEXT:    }
42; CHECK-NEXT:  }
43; CHECK-NEXT:  Symbol {
44; CHECK-NEXT:    Index: [[#INDX+2]]
45; CHECK-NEXT:    Name: .foo1
46; CHECK-NEXT:    Value (RelocatableAddress): 0x0
47; CHECK-NEXT:    Section: .text
48; CHECK-NEXT:    Type: 0x0
49; CHECK-NEXT:    StorageClass: C_EXT (0x2)
50; CHECK-NEXT:    NumberOfAuxEntries: 1
51; CHECK-NEXT:    CSECT Auxiliary Entry {
52; CHECK-NEXT:      Index:  [[#INDX+3]]
53; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX]]
54; CHECK-NEXT:      ParameterHashIndex: 0x0
55; CHECK-NEXT:      TypeChkSectNum: 0x0
56; CHECK-NEXT:      SymbolAlignmentLog2: 0
57; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
58; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
59; CHECK-NEXT:      StabInfoIndex: 0x0
60; CHECK-NEXT:      StabSectNum: 0x0
61; CHECK-NEXT:    }
62; CHECK-NEXT:  }
63; CHECK-NEXT:  Symbol {
64; CHECK-NEXT:    Index: [[#INDX+4]]
65; CHECK-NEXT:    Name: sect2
66; CHECK-NEXT:    Value (RelocatableAddress): 0x20
67; CHECK-NEXT:    Section: .text
68; CHECK-NEXT:    Type: 0x0
69; CHECK-NEXT:    StorageClass: C_HIDEXT (0x6B)
70; CHECK-NEXT:    NumberOfAuxEntries: 1
71; CHECK-NEXT:    CSECT Auxiliary Entry {
72; CHECK-NEXT:      Index: [[#INDX+5]]
73; CHECK-NEXT:      SectionLen: 24
74; CHECK-NEXT:      ParameterHashIndex: 0x0
75; CHECK-NEXT:      TypeChkSectNum: 0x0
76; CHECK-NEXT:      SymbolAlignmentLog2: 5
77; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
78; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
79; CHECK-NEXT:      StabInfoIndex: 0x0
80; CHECK-NEXT:      StabSectNum: 0x0
81; CHECK-NEXT:    }
82; CHECK-NEXT:  }
83; CHECK-NEXT:  Symbol {
84; CHECK-NEXT:    Index: [[#INDX+6]]
85; CHECK-NEXT:    Name: .foo2
86; CHECK-NEXT:    Value (RelocatableAddress): 0x20
87; CHECK-NEXT:    Section: .text
88; CHECK-NEXT:    Type: 0x0
89; CHECK-NEXT:    StorageClass: C_EXT (0x2)
90; CHECK-NEXT:    NumberOfAuxEntries: 1
91; CHECK-NEXT:    CSECT Auxiliary Entry {
92; CHECK-NEXT:      Index: [[#INDX+7]]
93; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX+4]]
94; CHECK-NEXT:      ParameterHashIndex: 0x0
95; CHECK-NEXT:      TypeChkSectNum: 0x0
96; CHECK-NEXT:      SymbolAlignmentLog2: 0
97; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
98; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
99; CHECK-NEXT:      StabInfoIndex: 0x0
100; CHECK-NEXT:      StabSectNum: 0x0
101; CHECK-NEXT:    }
102; CHECK-NEXT:  }
103; CHECK-NEXT:  Symbol {
104; CHECK-NEXT:    Index: [[#INDX+8]]
105; CHECK-NEXT:    Name: .foo3
106; CHECK-NEXT:    Value (RelocatableAddress): 0x30
107; CHECK-NEXT:    Section: .text
108; CHECK-NEXT:    Type: 0x0
109; CHECK-NEXT:    StorageClass: C_EXT (0x2)
110; CHECK-NEXT:    NumberOfAuxEntries: 1
111; CHECK-NEXT:    CSECT Auxiliary Entry {
112; CHECK-NEXT:      Index: [[#INDX+9]]
113; CHECK-NEXT:      ContainingCsectSymbolIndex: [[#INDX+4]]
114; CHECK-NEXT:      ParameterHashIndex: 0x0
115; CHECK-NEXT:      TypeChkSectNum: 0x0
116; CHECK-NEXT:      SymbolAlignmentLog2: 0
117; CHECK-NEXT:      SymbolType: XTY_LD (0x2)
118; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
119; CHECK-NEXT:      StabInfoIndex: 0x0
120; CHECK-NEXT:      StabSectNum: 0x0
121; CHECK-NEXT:    }
122; CHECK-NEXT:  }
123; CHECK-NEXT:  Symbol {
124; CHECK-NEXT:    Index: [[#INDX+10]]
125; CHECK-NEXT:    Name: .foo4
126; CHECK-NEXT:    Value (RelocatableAddress): 0x40
127; CHECK-NEXT:    Section: .text
128; CHECK-NEXT:    Type: 0x0
129; CHECK-NEXT:    StorageClass: C_EXT (0x2)
130; CHECK-NEXT:    NumberOfAuxEntries: 1
131; CHECK-NEXT:    CSECT Auxiliary Entry {
132; CHECK-NEXT:      Index: 16
133; CHECK-NEXT:      SectionLen: 8
134; CHECK-NEXT:      ParameterHashIndex: 0x0
135; CHECK-NEXT:      TypeChkSectNum: 0x0
136; CHECK-NEXT:      SymbolAlignmentLog2: 5
137; CHECK-NEXT:      SymbolType: XTY_SD (0x1)
138; CHECK-NEXT:      StorageMappingClass: XMC_PR (0x0)
139; CHECK-NEXT:      StabInfoIndex: 0x0
140; CHECK-NEXT:      StabSectNum: 0x0
141; CHECK-NEXT:    }
142; CHECK-NEXT:  }
143