brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 4140e76 Raw
48 lines · plain
1; RUN: llc -O0 -fast-isel -fast-isel-abort=1 -verify-machineinstrs -mtriple=arm64-apple-darwin < %s | FileCheck %s2 3@sortlist = common global [5001 x i32] zeroinitializer, align 164@sortlist2 = common global [5001 x i64] zeroinitializer, align 165 6; Load an address with an offset larget then LDR imm can handle7define i32 @foo() nounwind {8entry:9; CHECK-LABEL: @foo10; CHECK: adrp x[[REG:[0-9]+]], _sortlist@GOTPAGE11; CHECK: ldr x[[REG1:[0-9]+]], [x[[REG]], _sortlist@GOTPAGEOFF]12; CHECK: mov x[[REG2:[0-9]+]], #2000013; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]14; CHECK: ldr w0, [x[[REG3]]]15; CHECK: ret16  %0 = load i32, ptr getelementptr inbounds ([5001 x i32], ptr @sortlist, i32 0, i64 5000), align 417  ret i32 %018}19 20define i64 @foo2() nounwind {21entry:22; CHECK-LABEL: @foo223; CHECK: adrp x[[REG:[0-9]+]], _sortlist2@GOTPAGE24; CHECK: ldr x[[REG1:[0-9]+]], [x[[REG]], _sortlist2@GOTPAGEOFF]25; CHECK: mov x[[REG2:[0-9]+]], #4000026; CHECK: add x[[REG3:[0-9]+]], x[[REG1]], x[[REG2]]27; CHECK: ldr x0, [x[[REG3]]]28; CHECK: ret29  %0 = load i64, ptr getelementptr inbounds ([5001 x i64], ptr @sortlist2, i32 0, i64 5000), align 430  ret i64 %031}32 33; Load an address with a ridiculously large offset.34; rdar://1250555335@pd2 = common global ptr null, align 836 37define signext i8 @foo3() nounwind ssp {38entry:39; CHECK-LABEL: @foo340; CHECK: mov x[[REG:[0-9]+]], #1227441; CHECK: movk x[[REG]], #29646, lsl #1642; CHECK: movk x[[REG]], #2874, lsl #3243  %0 = load ptr, ptr @pd2, align 844  %arrayidx = getelementptr inbounds i8, ptr %0, i64 1234567890123445  %1 = load i8, ptr %arrayidx, align 146  ret i8 %147}48