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