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