brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · ed588d5 Raw
70 lines · plain
1; RUN: llc -relocation-model=static -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s2target datalayout = "E-m:e-i64:64-n32:64"3target triple = "powerpc64-unknown-linux-gnu"4 5%struct.cd = type { i64, i64, i64 }6 7@something = dso_local global [33 x i8] c"this is not really code, but...\0A\00", align 18@tls_something = dso_local thread_local global %struct.cd zeroinitializer, align 89@extern_something = external global %struct.cd10 11; Function Attrs: nounwind12define dso_local void @foo() #0 {13entry:14  tail call void @something() #015  ret void16 17; CHECK-LABEL: @foo18; CHECK-DAG: addis [[REG1:[0-9]+]], 2, something@toc@ha19; CHECK-DAG: std 2, 40(1)20; CHECK-DAG: addi [[REG3:[0-9]+]], [[REG1]], something@toc@l21; CHECK-DAG: ld [[REG2:[0-9]+]], 0([[REG3]])22; CHECK-DAG: ld 11, 16([[REG3]])23; CHECK-DAG: ld 2, 8([[REG3]])24; CHECK-DAG: mtctr [[REG2]]25; CHECK: bctrl26; CHECK: ld 2, 40(1)27; CHECK: blr28}29 30; Function Attrs: nounwind31define dso_local void @bar() #0 {32entry:33  tail call void @tls_something() #034  ret void35 36; CHECK-LABEL: @bar37; CHECK-DAG: addis [[REG1:[0-9]+]], 13, tls_something@tprel@ha38; CHECK-DAG: std 2, 40(1)39; CHECK-DAG: addi [[REG3:[0-9]+]], [[REG1]], tls_something@tprel@l40; CHECK-DAG: ld [[REG2:[0-9]+]], tls_something@tprel@l([[REG1]])41; CHECK-DAG: ld 11, 16([[REG3]])42; CHECK-DAG: ld 2, 8([[REG3]])43; CHECK-DAG: mtctr [[REG2]]44; CHECK: bctrl45; CHECK: ld 2, 40(1)46; CHECK: blr47}48 49; Function Attrs: nounwind50define dso_local void @ext() #0 {51entry:52  tail call void @extern_something() #053  ret void54 55; CHECK-LABEL: @ext56; CHECK-DAG: addis [[REG1:[0-9]+]], 2, [[NAME:[._A-Za-z0-9]+]]@toc@ha57; CHECK-DAG: std 2, 40(1)58; CHECK-DAG: ld [[REG3:[0-9]+]], [[NAME]]@toc@l(3)59; CHECK-DAG: ld [[REG2:[0-9]+]], 0([[REG3]])60; CHECK-DAG: ld 11, 16([[REG3]])61; CHECK-DAG: ld 2, 8([[REG3]])62; CHECK-DAG: mtctr [[REG2]]63; CHECK: bctrl64; CHECK: ld 2, 40(1)65; CHECK: blr66}67 68attributes #0 = { nounwind }69 70