1 ; RUN: opt %s -mtriple=aarch64-none-linux-gnu -global-merge -S -o - | FileCheck %s
2 ; RUN: opt %s -mtriple=aarch64-none-linux-gnu -global-merge -global-merge-on-external -S -o - | FileCheck %s
4 ; RUN: opt %s -mtriple=aarch64-linux-gnuabi -global-merge -S -o - | FileCheck %s
5 ; RUN: opt %s -mtriple=aarch64-linux-gnuabi -global-merge -global-merge-on-external -S -o - | FileCheck %s
7 ; RUN: opt %s -mtriple=aarch64-apple-ios -global-merge -S -o - | FileCheck %s
8 ; RUN: opt %s -mtriple=aarch64-apple-ios -global-merge -global-merge-on-external -S -o - | FileCheck %s
10 @m = internal global i32 0, align 4
11 @n = internal global i32 0, align 4
13 ; CHECK: @_MergedGlobals = internal global { i32, i32 } zeroinitializer
15 define void @f1(i32 %a1, i32 %a2) {
17 ; CHECK: getelementptr inbounds ({ i32, i32 }* @_MergedGlobals, i32 0, i32 0)
18 ; CHECK: getelementptr inbounds ({ i32, i32 }* @_MergedGlobals, i32 0, i32 1)
19 store i32 %a1, i32* @m, align 4
20 store i32 %a2, i32* @n, align 4