brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · ee8303f Raw
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