1; RUN: llc < %s -mtriple=arm-eabi -arm-global-merge | FileCheck %s --check-prefix=CHECK-MERGE 2; RUN: llc < %s -mtriple=arm-eabi -arm-global-merge -global-merge-on-external=true | FileCheck %s --check-prefix=CHECK-MERGE 3; RUN: llc < %s -mtriple=arm-eabi -arm-global-merge -global-merge-on-external=false | FileCheck %s --check-prefix=CHECK-NO-MERGE 4; RUN: llc < %s -mtriple=arm-macho -arm-global-merge | FileCheck %s --check-prefix=CHECK-NO-MERGE 5; RUN: llc < %s -mtriple=arm-eabi -arm-global-merge -relocation-model=pic | FileCheck %s --check-prefix=CHECK-NO-MERGE 6 7@x = global i32 0, align 4 8@y = global i32 0, align 4 9@z = global i32 0, align 4 10 11define void @f1(i32 %a1, i32 %a2) { 12;CHECK: f1: 13;CHECK: ldr {{r[0-9]+}}, [[LABEL1:\.LCPI[0-9]+_[0-9]]] 14;CHECK: [[LABEL1]]: 15;CHECK-MERGE: .long .L_MergedGlobals 16;CHECK-NO-MERGE: .long {{_?x}} 17 store i32 %a1, i32* @x, align 4 18 store i32 %a2, i32* @y, align 4 19 ret void 20} 21 22define void @g1(i32 %a1, i32 %a2) { 23;CHECK: g1: 24;CHECK: ldr {{r[0-9]+}}, [[LABEL2:\.LCPI[0-9]+_[0-9]]] 25;CHECK: [[LABEL2]]: 26;CHECK-MERGE: .long .L_MergedGlobals 27;CHECK-NO-MERGE: .long {{_?y}} 28 store i32 %a1, i32* @y, align 4 29 store i32 %a2, i32* @z, align 4 30 ret void 31} 32 33;CHECK-NO-MERGE-NOT: .globl .L_MergedGlobals 34 35;CHECK-MERGE: .type .L_MergedGlobals,%object 36;CHECK-MERGE: .local .L_MergedGlobals 37;CHECK-MERGE: .comm .L_MergedGlobals,12,4 38 39;CHECK-MERGE: .globl x 40;CHECK-MERGE: x = .L_MergedGlobals 41;CHECK-MERGE: .size x, 4 42;CHECK-MERGE: .globl y 43;CHECK-MERGE: y = .L_MergedGlobals+4 44;CHECK-MERGE: .size y, 4 45;CHECK-MERGE: .globl z 46;CHECK-MERGE: z = .L_MergedGlobals+8 47;CHECK-MERGE: .size z, 4 48