19dd1d451SDavid Green; RUN: llc -mtriple=aarch64-none-eabi -code-model=tiny < %s | FileCheck %s
29dd1d451SDavid Green
3*7b529d04SFangrui Song@var8 = dso_local global i8 0
4*7b529d04SFangrui Song@var16 = dso_local global i16 0
5*7b529d04SFangrui Song@var32 = dso_local global i32 0
6*7b529d04SFangrui Song@var64 = dso_local global i64 0
79dd1d451SDavid Green
8*7b529d04SFangrui Songdefine dso_local i8* @global_addr() {
99dd1d451SDavid Green; CHECK-LABEL: global_addr:
109dd1d451SDavid Green  ret i8* @var8
119dd1d451SDavid Green  ; The adr calculation should end up returned directly in x0.
129dd1d451SDavid Green; CHECK: adr x0, var8
139dd1d451SDavid Green; CHECK-NEXT: ret
149dd1d451SDavid Green}
159dd1d451SDavid Green
16*7b529d04SFangrui Songdefine dso_local i8 @global_i8() {
179dd1d451SDavid Green; CHECK-LABEL: global_i8:
189dd1d451SDavid Green  %val = load i8, i8* @var8
199dd1d451SDavid Green  ret i8 %val
209dd1d451SDavid Green; CHECK: adr x[[ADDR_REG:[0-9]+]], var8
219dd1d451SDavid Green; CHECK: ldrb w0, [x[[ADDR_REG]]]
229dd1d451SDavid Green}
239dd1d451SDavid Green
24*7b529d04SFangrui Songdefine dso_local i16 @global_i16() {
259dd1d451SDavid Green; CHECK-LABEL: global_i16:
269dd1d451SDavid Green  %val = load i16, i16* @var16
279dd1d451SDavid Green  ret i16 %val
289dd1d451SDavid Green; CHECK: adr x[[ADDR_REG:[0-9]+]], var16
299dd1d451SDavid Green; CHECK: ldrh w0, [x[[ADDR_REG]]]
309dd1d451SDavid Green}
319dd1d451SDavid Green
32*7b529d04SFangrui Songdefine dso_local i32 @global_i32() {
339dd1d451SDavid Green; CHECK-LABEL: global_i32:
349dd1d451SDavid Green  %val = load i32, i32* @var32
359dd1d451SDavid Green  ret i32 %val
361f203bcdSDavid Green; CHECK: ldr w0, var32
379dd1d451SDavid Green}
389dd1d451SDavid Green
39*7b529d04SFangrui Songdefine dso_local i64 @global_i64() {
409dd1d451SDavid Green; CHECK-LABEL: global_i64:
419dd1d451SDavid Green  %val = load i64, i64* @var64
429dd1d451SDavid Green  ret i64 %val
431f203bcdSDavid Green; CHECK: ldr x0, var64
449dd1d451SDavid Green}
459dd1d451SDavid Green
46*7b529d04SFangrui Songdefine dso_local <2 x i64> @constpool() {
479dd1d451SDavid Green; CHECK-LABEL: constpool:
489dd1d451SDavid Green  ret <2 x i64> <i64 123456789, i64 987654321100>
499dd1d451SDavid Green
509dd1d451SDavid Green; CHECK: adr x[[ADDR_REG:[0-9]+]], {{.LCPI[0-9]+_[0-9]+}}
519dd1d451SDavid Green; CHECK: ldr q0, [x[[ADDR_REG]]]
529dd1d451SDavid Green}
53