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