xref: /llvm-project/llvm/test/CodeGen/PowerPC/global-merge-aix-sections.ll (revision 8e4423eb0888e5fe381a23ec1fa6969f2d096ed1)
1; RUN: rm -rf %t
2; RUN: mkdir -p %t
3
4; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 < %s | FileCheck %s
5
6; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 --filetype=obj -o %t/global-merge-aix-sections.o < %s
7; RUN; llvm-objdump --syms %t/global-merge-aix-sections.o | FileCheck %s --check-prefix=DATA
8
9%struct.Example = type { i32, i8 }
10
11@y = internal global i32 0, section "mycsect", align 4
12@z = internal global i32 0, section "mycsect", align 4
13@l = internal global i32 0, align 4
14@u = internal global i16 0, section "mycsect", align 2
15@myStruct1 = internal global %struct.Example zeroinitializer, section "mycsect", align 4
16
17; Function Attrs: nounwind
18define void @g() {
19entry:
20  tail call void @f(ptr noundef nonnull @y, ptr noundef nonnull @z)
21  tail call void @f(ptr noundef nonnull @l, ptr noundef nonnull @z)
22  tail call void @h(ptr noundef nonnull @u)
23  tail call void @s(ptr noundef nonnull @myStruct1)
24  ret void
25}
26
27declare void @f(ptr noundef, ptr noundef)
28declare void @h(ptr noundef)
29declare void @s(ptr noundef)
30
31; CHECK: .csect mycsect[RW],2
32; CHECK-NEXT: .lglobl u # @_MergedGlobals
33; CHECK-NEXT: .lglobl y
34; CHECK-NEXT: .lglobl z
35; CHECK-NEXT: .lglobl myStruct1
36; CHECK-NEXT: .align  2
37; CHECK-NEXT: L.._MergedGlobals:
38; CHECK-NEXT: u:
39; CHECK-NEXT:        .space  2
40; CHECK-NEXT:        .space  2
41; CHECK-NEXT: y:
42; CHECK-NEXT:        .space  4
43; CHECK-NEXT: z:
44; CHECK-NEXT:        .space  4
45; CHECK-NEXT: myStruct1:
46; CHECK-NEXT:        .space  8
47
48; DATA: 00000078 l     O .data  00000014 mycsect
49; DATA-NEXT: 00000078 l     O .data (csect: mycsect)         00000000 u
50; DATA-NEXT: 0000007c l     O .data (csect: mycsect)         00000000 y
51; DATA-NEXT: 00000080 l     O .data (csect: mycsect)         00000000 z
52; DATA-NEXT: 00000084 l     O .data (csect: mycsect)         00000000 myStruct1
53