brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 85b179d Raw
78 lines · plain
1; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x9 -mattr=+call-saved-x9 -o - %s | FileCheck %s --check-prefixes=CHECK-X92; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x9 -mattr=+call-saved-x9 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X93; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x9 -mattr=+call-saved-x9 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X94 5; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x10 -mattr=+call-saved-x10 -o - %s | FileCheck %s --check-prefixes=CHECK-X106; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x10 -mattr=+call-saved-x10 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X107; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x10 -mattr=+call-saved-x10 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X108 9; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x11 -mattr=+call-saved-x11 -o - %s | FileCheck %s --check-prefixes=CHECK-X1110; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x11 -mattr=+call-saved-x11 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1111; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x11 -mattr=+call-saved-x11 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1112 13; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x12 -mattr=+call-saved-x12 -o - %s | FileCheck %s --check-prefixes=CHECK-X1214; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x12 -mattr=+call-saved-x12 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1215; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x12 -mattr=+call-saved-x12 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1216 17; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x13 -mattr=+call-saved-x13 -o - %s | FileCheck %s --check-prefixes=CHECK-X1318; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x13 -mattr=+call-saved-x13 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1319; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x13 -mattr=+call-saved-x13 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1320 21; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x14 -mattr=+call-saved-x14 -o - %s | FileCheck %s --check-prefixes=CHECK-X1422; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x14 -mattr=+call-saved-x14 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1423; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x14 -mattr=+call-saved-x14 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1424 25; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x15 -mattr=+call-saved-x15 -o - %s | FileCheck %s --check-prefixes=CHECK-X1526; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x15 -mattr=+call-saved-x15 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1527; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x15 -mattr=+call-saved-x15 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1528 29; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x18 -mattr=+call-saved-x18 -o - %s | FileCheck %s --check-prefixes=CHECK-X1830; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x18 -mattr=+call-saved-x18 -global-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1831; RUN: llc -mtriple=arm64-linux-gnu -mattr=+reserve-x18 -mattr=+call-saved-x18 -fast-isel -o - %s | FileCheck %s --check-prefixes=CHECK-X1832 33; Used to exhaust the supply of GPRs.34@var = global [30 x i64] zeroinitializer35 36; If a register is specified to be both reserved and callee-saved, then it37; should not be allocated and should not be spilled onto the stack.38define void @foo() {39; CHECK-X9-NOT: str x9, [sp40; CHECK-X10-NOT: str x10, [sp41; CHECK-X11-NOT: str x11, [sp42; CHECK-X12-NOT: str x12, [sp43; CHECK-X13-NOT: str x13, [sp44; CHECK-X14-NOT: str x14, [sp45; CHECK-X15-NOT: str x15, [sp46; CHECK-X18-NOT: str x18, [sp47 48  %val = load volatile [30 x i64], ptr @var49  store volatile [30 x i64] %val, ptr @var50 51; CHECK-X9-NOT: ldr x952; CHECK-X10-NOT: ldr x1053; CHECK-X11-NOT: ldr x1154; CHECK-X12-NOT: ldr x1255; CHECK-X13-NOT: ldr x1356; CHECK-X14-NOT: ldr x1457; CHECK-X15-NOT: ldr x1558; CHECK-X18-NOT: ldr x1859; CHECK-X9-NOT: str x960; CHECK-X10-NOT: str x1061; CHECK-X11-NOT: str x1162; CHECK-X12-NOT: str x1263; CHECK-X13-NOT: str x1364; CHECK-X14-NOT: str x1465; CHECK-X15-NOT: str x1566; CHECK-X18-NOT: str x1867 68; CHECK-X9-NOT: ldr x9, [sp69; CHECK-X10-NOT: ldr x10, [sp70; CHECK-X11-NOT: ldr x11, [sp71; CHECK-X12-NOT: ldr x12, [sp72; CHECK-X13-NOT: ldr x13, [sp73; CHECK-X14-NOT: ldr x14, [sp74; CHECK-X15-NOT: ldr x15, [sp75; CHECK-X18-NOT: ldr x18, [sp76  ret void77}78