xref: /llvm-project/llvm/test/CodeGen/PowerPC/basic-toc-data-def.ll (revision b1acb7a315e903ee340a33dbc9b2b61b0450bb67)
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff  -verify-machineinstrs < %s | FileCheck %s
2; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s
3
4; RUN: llc -filetype=obj -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s -o %t32.o
5; RUN: llvm-readobj %t32.o --syms | FileCheck %s -D#INDX=5 --check-prefix=OBJ32
6; RUN: llc -filetype=obj -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s -o %t64.o
7; RUN: llvm-readobj %t64.o --syms | FileCheck %s -D#INDX=5 --check-prefix=OBJ64
8
9@i = global i32 55, align 4 #0
10
11attributes #0 = { "toc-data" }
12
13; CHECK:            .toc
14; CHECK-NEXT:       .csect i[TD],2
15; CHECK-NEXT:       .globl i[TD]
16; CHECK-NEXT:       .align 2
17; CHECK-NEXT:       .vbyte 4, 55
18
19; OBJ32:        Index: [[#INDX]]
20; OBJ32-NEXT:   Name: TOC
21; OBJ32-NEXT:   Value (RelocatableAddress): 0x0
22; OBJ32-NEXT:   Section: .data
23; OBJ32-NEXT:   Type: 0x0
24; OBJ32-NEXT:   StorageClass: C_HIDEXT (0x6B)
25; OBJ32-NEXT:   NumberOfAuxEntries: 1
26; OBJ32-NEXT:   CSECT Auxiliary Entry {
27; OBJ32-NEXT:     Index: [[#INDX+1]]
28; OBJ32-NEXT:     SectionLen: 0
29; OBJ32-NEXT:     ParameterHashIndex: 0x0
30; OBJ32-NEXT:     TypeChkSectNum: 0x0
31; OBJ32-NEXT:     SymbolAlignmentLog2: 2
32; OBJ32-NEXT:     SymbolType: XTY_SD (0x1)
33; OBJ32-NEXT:     StorageMappingClass: XMC_TC0 (0xF)
34; OBJ32-NEXT:     StabInfoIndex: 0x0
35; OBJ32-NEXT:     StabSectNum: 0x0
36; OBJ32-NEXT:   }
37; OBJ32-NEXT: }
38; OBJ32-NEXT: Symbol {
39; OBJ32-NEXT:   Index: [[#INDX+2]]
40; OBJ32-NEXT:   Name: i
41; OBJ32-NEXT:   Value (RelocatableAddress): 0x0
42; OBJ32-NEXT:   Section: .data
43; OBJ32-NEXT:   Type: 0x0
44; OBJ32-NEXT:   StorageClass: C_EXT (0x2)
45; OBJ32-NEXT:   NumberOfAuxEntries: 1
46; OBJ32-NEXT:   CSECT Auxiliary Entry {
47; OBJ32-NEXT:     Index: [[#INDX+3]]
48; OBJ32-NEXT:     SectionLen: 4
49; OBJ32-NEXT:     ParameterHashIndex: 0x0
50; OBJ32-NEXT:     TypeChkSectNum: 0x0
51; OBJ32-NEXT:     SymbolAlignmentLog2: 2
52; OBJ32-NEXT:     SymbolType: XTY_SD (0x1)
53; OBJ32-NEXT:     StorageMappingClass: XMC_TD (0x10)
54; OBJ32-NEXT:     StabInfoIndex: 0x0
55; OBJ32-NEXT:     StabSectNum: 0x0
56; OBJ32-NEXT:   }
57; OBJ32-NEXT: }
58
59; OBJ64:        Index: [[#INDX]]
60; OBJ64-NEXT:   Name: TOC
61; OBJ64-NEXT:   Value (RelocatableAddress): 0x0
62; OBJ64-NEXT:   Section: .data
63; OBJ64-NEXT:   Type: 0x0
64; OBJ64-NEXT:   StorageClass: C_HIDEXT (0x6B)
65; OBJ64-NEXT:   NumberOfAuxEntries: 1
66; OBJ64-NEXT:   CSECT Auxiliary Entry {
67; OBJ64-NEXT:     Index: [[#INDX+1]]
68; OBJ64-NEXT:     SectionLen: 0
69; OBJ64-NEXT:     ParameterHashIndex: 0x0
70; OBJ64-NEXT:     TypeChkSectNum: 0x0
71; OBJ64-NEXT:     SymbolAlignmentLog2: 2
72; OBJ64-NEXT:     SymbolType: XTY_SD (0x1)
73; OBJ64-NEXT:     StorageMappingClass: XMC_TC0 (0xF)
74; OBJ64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
75; OBJ64-NEXT:   }
76; OBJ64-NEXT: }
77; OBJ64-NEXT: Symbol {
78; OBJ64-NEXT:   Index: [[#INDX+2]]
79; OBJ64-NEXT:   Name: i
80; OBJ64-NEXT:   Value (RelocatableAddress): 0x0
81; OBJ64-NEXT:   Section: .data
82; OBJ64-NEXT:   Type: 0x0
83; OBJ64-NEXT:   StorageClass: C_EXT (0x2)
84; OBJ64-NEXT:   NumberOfAuxEntries: 1
85; OBJ64-NEXT:   CSECT Auxiliary Entry {
86; OBJ64-NEXT:     Index: [[#INDX+3]]
87; OBJ64-NEXT:     SectionLen: 4
88; OBJ64-NEXT:     ParameterHashIndex: 0x0
89; OBJ64-NEXT:     TypeChkSectNum: 0x0
90; OBJ64-NEXT:     SymbolAlignmentLog2: 2
91; OBJ64-NEXT:     SymbolType: XTY_SD (0x1)
92; OBJ64-NEXT:     StorageMappingClass: XMC_TD (0x10)
93; OBJ64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
94; OBJ64-NEXT:   }
95; OBJ64-NEXT: }
96