53 lines · plain
1; RUN: llc -mtriple=aarch64 -code-model=tiny < %s | FileCheck %s2 3@var8 = dso_local global i8 04@var16 = dso_local global i16 05@var32 = dso_local global i32 06@var64 = dso_local global i64 07 8define dso_local ptr @global_addr() {9; CHECK-LABEL: global_addr:10 ret ptr @var811 ; The adr calculation should end up returned directly in x0.12; CHECK: adr x0, var813; CHECK-NEXT: ret14}15 16define dso_local i8 @global_i8() {17; CHECK-LABEL: global_i8:18 %val = load i8, ptr @var819 ret i8 %val20; CHECK: adr x[[ADDR_REG:[0-9]+]], var821; CHECK: ldrb w0, [x[[ADDR_REG]]]22}23 24define dso_local i16 @global_i16() {25; CHECK-LABEL: global_i16:26 %val = load i16, ptr @var1627 ret i16 %val28; CHECK: adr x[[ADDR_REG:[0-9]+]], var1629; CHECK: ldrh w0, [x[[ADDR_REG]]]30}31 32define dso_local i32 @global_i32() {33; CHECK-LABEL: global_i32:34 %val = load i32, ptr @var3235 ret i32 %val36; CHECK: ldr w0, var3237}38 39define dso_local i64 @global_i64() {40; CHECK-LABEL: global_i64:41 %val = load i64, ptr @var6442 ret i64 %val43; CHECK: ldr x0, var6444}45 46define dso_local <2 x i64> @constpool() {47; CHECK-LABEL: constpool:48 ret <2 x i64> <i64 123456789, i64 987654321100>49 50; CHECK: adr x[[ADDR_REG:[0-9]+]], {{.LCPI[0-9]+_[0-9]+}}51; CHECK: ldr q0, [x[[ADDR_REG]]]52}53