The hazard recognizer only needs a subtarget, not a target machine
[oota-llvm.git] / test / Transforms / GlobalMerge / AArch64 / global-merge-2.ll
1 ; RUN: opt %s -mtriple=aarch64-none-linux-gnu -global-merge -global-merge-on-external -S -o - | FileCheck %s
2 ; RUN: opt %s -mtriple=aarch64-linux-gnuabi -global-merge -global-merge-on-external -S -o - | FileCheck %s
3 ; RUN: opt %s -mtriple=aarch64-apple-ios -global-merge -global-merge-on-external -S -o - | FileCheck %s
4
5 @x = global i32 0, align 4
6 @y = global i32 0, align 4
7 @z = global i32 0, align 4
8
9 ; CHECK: @_MergedGlobals_x = global { i32, i32, i32 } zeroinitializer
10 ; CHECK: @x = alias getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 0)
11 ; CHECK: @y = alias getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 1)
12 ; CHECK: @z = alias getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 2)
13
14 define void @f1(i32 %a1, i32 %a2) {
15 ; CHECK-LABEL: @f1
16 ; CHECK: getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 0)
17 ; CHECK: getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 1)
18   store i32 %a1, i32* @x, align 4
19   store i32 %a2, i32* @y, align 4
20   ret void
21 }
22
23 define void @g1(i32 %a1, i32 %a2) {
24 ; CHECK-LABEL: @g1
25 ; CHECK: getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 1)
26 ; CHECK: getelementptr inbounds ({ i32, i32, i32 }* @_MergedGlobals_x, i32 0, i32 2)
27   store i32 %a1, i32* @y, align 4
28   store i32 %a2, i32* @z, align 4
29   ret void
30 }