xref: /llvm-project/llvm/test/CodeGen/PowerPC/toc-data-struct-array.ll (revision 37b5eb0a0a75bdf69b96b902417906da31c88dc3)
1*37b5eb0aSZaara Syeda; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s --check-prefix CHECK
2*37b5eb0aSZaara Syeda; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s --check-prefix CHECK
3*37b5eb0aSZaara Syeda
4*37b5eb0aSZaara Syeda; RUN: llc -filetype=obj -mtriple powerpc-ibm-aix-xcoff < %s -o %t32.o
5*37b5eb0aSZaara Syeda; RUN: llvm-readobj %t32.o --syms | FileCheck %s --check-prefix=OBJ32
6*37b5eb0aSZaara Syeda; RUN: llc -filetype=obj -mtriple powerpc64-ibm-aix-xcoff < %s -o %t64.o
7*37b5eb0aSZaara Syeda; RUN: llvm-readobj %t64.o --syms | FileCheck %s --check-prefix=OBJ64
8*37b5eb0aSZaara Syeda
9*37b5eb0aSZaara Syeda%struct.small_struct = type { i16 }
10*37b5eb0aSZaara Syeda
11*37b5eb0aSZaara Syeda@a = global %struct.small_struct zeroinitializer, align 2 #0
12*37b5eb0aSZaara Syeda@b = global [2 x i16] zeroinitializer, align 2 #0
13*37b5eb0aSZaara Syeda
14*37b5eb0aSZaara Syeda; Function Attrs: noinline
15*37b5eb0aSZaara Syedadefine i16 @foo() #1 {
16*37b5eb0aSZaara Syedaentry:
17*37b5eb0aSZaara Syeda  %0 = load i16, ptr @a, align 2
18*37b5eb0aSZaara Syeda  %1 = load i16, ptr @b, align 2
19*37b5eb0aSZaara Syeda  %add = add nsw i16 %0, %1
20*37b5eb0aSZaara Syeda  ret i16 %add
21*37b5eb0aSZaara Syeda}
22*37b5eb0aSZaara Syeda
23*37b5eb0aSZaara Syedaattributes #0 = { "toc-data" }
24*37b5eb0aSZaara Syedaattributes #1 = { noinline }
25*37b5eb0aSZaara Syeda
26*37b5eb0aSZaara Syeda; CHECK:      .toc
27*37b5eb0aSZaara Syeda; CHECK-NEXT: .csect a[TD],2
28*37b5eb0aSZaara Syeda; CHECK-NEXT: .globl    a[TD]                           # @a
29*37b5eb0aSZaara Syeda; CHECK-NEXT: .align    1
30*37b5eb0aSZaara Syeda; CHECK-NEXT: .space    2
31*37b5eb0aSZaara Syeda; CHECK-NEXT: .csect b[TD],2
32*37b5eb0aSZaara Syeda; CHECK-NEXT: .globl    b[TD]                           # @b
33*37b5eb0aSZaara Syeda; CHECK-NEXT: .align    1
34*37b5eb0aSZaara Syeda; CHECK-NEXT: .space    4
35*37b5eb0aSZaara Syeda
36*37b5eb0aSZaara Syeda; OBJ32:  Symbol {
37*37b5eb0aSZaara Syeda; OBJ32:    Name: a
38*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Value (RelocatableAddress): 0x3C
39*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Section: .data
40*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Type: 0x0
41*37b5eb0aSZaara Syeda; OBJ32-NEXT:    StorageClass: C_EXT (0x2)
42*37b5eb0aSZaara Syeda; OBJ32-NEXT:    NumberOfAuxEntries: 1
43*37b5eb0aSZaara Syeda; OBJ32-NEXT:    CSECT Auxiliary Entry {
44*37b5eb0aSZaara Syeda; OBJ32-NEXT:      Index: {{[0-9]+}}
45*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SectionLen: 2
46*37b5eb0aSZaara Syeda; OBJ32-NEXT:      ParameterHashIndex: 0x0
47*37b5eb0aSZaara Syeda; OBJ32-NEXT:      TypeChkSectNum: 0x0
48*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SymbolAlignmentLog2: 2
49*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SymbolType: XTY_SD (0x1)
50*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StorageMappingClass: XMC_TD (0x10)
51*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StabInfoIndex: 0x0
52*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StabSectNum: 0x0
53*37b5eb0aSZaara Syeda; OBJ32-NEXT:    }
54*37b5eb0aSZaara Syeda; OBJ32-NEXT:  }
55*37b5eb0aSZaara Syeda; OBJ32-NEXT:  Symbol {
56*37b5eb0aSZaara Syeda; OBJ32:    Name: b
57*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Value (RelocatableAddress): 0x40
58*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Section: .data
59*37b5eb0aSZaara Syeda; OBJ32-NEXT:    Type: 0x0
60*37b5eb0aSZaara Syeda; OBJ32-NEXT:    StorageClass: C_EXT (0x2)
61*37b5eb0aSZaara Syeda; OBJ32-NEXT:    NumberOfAuxEntries: 1
62*37b5eb0aSZaara Syeda; OBJ32-NEXT:    CSECT Auxiliary Entry {
63*37b5eb0aSZaara Syeda; OBJ32-NEXT:      Index: {{[0-9]+}}
64*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SectionLen: 4
65*37b5eb0aSZaara Syeda; OBJ32-NEXT:      ParameterHashIndex: 0x0
66*37b5eb0aSZaara Syeda; OBJ32-NEXT:      TypeChkSectNum: 0x0
67*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SymbolAlignmentLog2: 2
68*37b5eb0aSZaara Syeda; OBJ32-NEXT:      SymbolType: XTY_SD (0x1)
69*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StorageMappingClass: XMC_TD (0x10)
70*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StabInfoIndex: 0x0
71*37b5eb0aSZaara Syeda; OBJ32-NEXT:      StabSectNum: 0x0
72*37b5eb0aSZaara Syeda; OBJ32-NEXT:    }
73*37b5eb0aSZaara Syeda; OBJ32-NEXT:  }
74*37b5eb0aSZaara Syeda
75*37b5eb0aSZaara Syeda; OBJ64:  Symbol {
76*37b5eb0aSZaara Syeda; OBJ64:    Name: a
77*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Value (RelocatableAddress): 0x48
78*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Section: .data
79*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Type: 0x0
80*37b5eb0aSZaara Syeda; OBJ64-NEXT:    StorageClass: C_EXT (0x2)
81*37b5eb0aSZaara Syeda; OBJ64-NEXT:    NumberOfAuxEntries: 1
82*37b5eb0aSZaara Syeda; OBJ64-NEXT:    CSECT Auxiliary Entry {
83*37b5eb0aSZaara Syeda; OBJ64-NEXT:      Index: {{[0-9]+}}
84*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SectionLen: 2
85*37b5eb0aSZaara Syeda; OBJ64-NEXT:      ParameterHashIndex: 0x0
86*37b5eb0aSZaara Syeda; OBJ64-NEXT:      TypeChkSectNum: 0x0
87*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SymbolAlignmentLog2: 2
88*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SymbolType: XTY_SD (0x1)
89*37b5eb0aSZaara Syeda; OBJ64-NEXT:      StorageMappingClass: XMC_TD (0x10)
90*37b5eb0aSZaara Syeda; OBJ64-NEXT:      Auxiliary Type: AUX_CSECT (0xFB)
91*37b5eb0aSZaara Syeda; OBJ64-NEXT:    }
92*37b5eb0aSZaara Syeda; OBJ64-NEXT:  }
93*37b5eb0aSZaara Syeda; OBJ64-NEXT:  Symbol {
94*37b5eb0aSZaara Syeda; OBJ64:    Name: b
95*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Value (RelocatableAddress): 0x4C
96*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Section: .data
97*37b5eb0aSZaara Syeda; OBJ64-NEXT:    Type: 0x0
98*37b5eb0aSZaara Syeda; OBJ64-NEXT:    StorageClass: C_EXT (0x2)
99*37b5eb0aSZaara Syeda; OBJ64-NEXT:    NumberOfAuxEntries: 1
100*37b5eb0aSZaara Syeda; OBJ64-NEXT:    CSECT Auxiliary Entry {
101*37b5eb0aSZaara Syeda; OBJ64-NEXT:      Index: {{[0-9]+}}
102*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SectionLen: 4
103*37b5eb0aSZaara Syeda; OBJ64-NEXT:      ParameterHashIndex: 0x0
104*37b5eb0aSZaara Syeda; OBJ64-NEXT:      TypeChkSectNum: 0x0
105*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SymbolAlignmentLog2: 2
106*37b5eb0aSZaara Syeda; OBJ64-NEXT:      SymbolType: XTY_SD (0x1)
107*37b5eb0aSZaara Syeda; OBJ64-NEXT:      StorageMappingClass: XMC_TD (0x10)
108*37b5eb0aSZaara Syeda; OBJ64-NEXT:      Auxiliary Type: AUX_CSECT (0xFB)
109*37b5eb0aSZaara Syeda; OBJ64-NEXT:    }
110*37b5eb0aSZaara Syeda; OBJ64-NEXT:  }
111