brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 63f405f Raw
80 lines · plain
1; RUN: llc < %s -mtriple=thumbv7-w64-mingw32 | FileCheck %s2 3@var = external local_unnamed_addr global i32, align 44@dsolocalvar = external dso_local local_unnamed_addr global i32, align 45@localvar = dso_local local_unnamed_addr global i32 0, align 46@localcommon = common dso_local local_unnamed_addr global i32 0, align 47@extvar = external dllimport local_unnamed_addr global i32, align 48 9define dso_local i32 @getVar() {10; CHECK-LABEL: getVar:11; CHECK:    movw r0, :lower16:.refptr.var12; CHECK:    movt r0, :upper16:.refptr.var13; CHECK:    ldr  r0, [r0]14; CHECK:    ldr  r0, [r0]15; CHECK:    bx   lr16entry:17  %0 = load i32, ptr @var, align 418  ret i32 %019}20 21define dso_local i32 @getDsoLocalVar() {22; CHECK-LABEL: getDsoLocalVar:23; CHECK:    movw r0, :lower16:dsolocalvar24; CHECK:    movt r0, :upper16:dsolocalvar25; CHECK:    ldr  r0, [r0]26; CHECK:    bx   lr27entry:28  %0 = load i32, ptr @dsolocalvar, align 429  ret i32 %030}31 32define dso_local i32 @getLocalVar() {33; CHECK-LABEL: getLocalVar:34; CHECK:    movw r0, :lower16:localvar35; CHECK:    movt r0, :upper16:localvar36; CHECK:    ldr  r0, [r0]37; CHECK:    bx   lr38entry:39  %0 = load i32, ptr @localvar, align 440  ret i32 %041}42 43define dso_local i32 @getLocalCommon() {44; CHECK-LABEL: getLocalCommon:45; CHECK:    movw r0, :lower16:localcommon46; CHECK:    movt r0, :upper16:localcommon47; CHECK:    ldr  r0, [r0]48; CHECK:    bx   lr49entry:50  %0 = load i32, ptr @localcommon, align 451  ret i32 %052}53 54define dso_local i32 @getExtVar() {55; CHECK-LABEL: getExtVar:56; CHECK:    movw r0, :lower16:__imp_extvar57; CHECK:    movt r0, :upper16:__imp_extvar58; CHECK:    ldr  r0, [r0]59; CHECK:    ldr  r0, [r0]60; CHECK:    bx   lr61entry:62  %0 = load i32, ptr @extvar, align 463  ret i32 %064}65 66define dso_local void @callFunc() {67; CHECK-LABEL: callFunc:68; CHECK:    b.w otherFunc69entry:70  tail call void @otherFunc()71  ret void72}73 74declare dso_local void @otherFunc()75 76; CHECK:        .section        .rdata$.refptr.var,"dr",discard,.refptr.var77; CHECK:        .globl  .refptr.var78; CHECK: .refptr.var:79; CHECK:        .long   var80