# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a55 -misched-dump-reserved-cycles=true \
# RUN: -run-pass=machine-scheduler -debug-only=machine-scheduler -o - %s 2>&1 | FileCheck %s
# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a55 -misched-dump-reserved-cycles=false\
# RUN: -run-pass=machine-scheduler -debug-only=machine-scheduler -o - %s 2>&1 | FileCheck %s --check-prefix=NODUMP
# REQUIRES: asserts
---
name: f
tracksRegLiveness: true
body: |
bb.0:
liveins: $x0, $x1, $x2
$x3 = ADDXrr $x0, $x0
$x4 = ADDXrr $x1, $x1
$x5 = ADDXrr $x2, $x2
# It is enough to check the last one of the printout of the state of
# the schedule boundary, just before the final schedule is printed.
# CHECK-LABEL: Ready @1c
# CHECK-NEXT: CortexA55UnitALU +1x1u
# CHECK-NEXT: BotQ.A @1c
# CHECK-NEXT: Retired: 3
# CHECK-NEXT: Executed: 1c
# CHECK-NEXT: Critical: 1c, 3 MOps
# CHECK-NEXT: ExpectedLatency: 0c
# CHECK-NEXT: - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 1
# CHECK-NEXT: CortexA55UnitALU(1) = 0
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: *** Final schedule for %bb.0 ***
# CHECK-NEXT: SU(0): $x3 = ADDXrr $x0, $x0
# CHECK-NEXT: SU(1): $x4 = ADDXrr $x1, $x1
# CHECK-NEXT: SU(2): $x5 = ADDXrr $x2, $x2
# NODUMP-LABEL: Ready @1c
# NODUMP-NEXT: CortexA55UnitALU +1x1u
# NODUMP-NEXT: BotQ.A @1c
# NODUMP-NEXT: Retired: 3
# NODUMP-NEXT: Executed: 1c
# NODUMP-NEXT: Critical: 1c, 3 MOps
# NODUMP-NEXT: ExpectedLatency: 0c
# NODUMP-NEXT: - Latency limited.
# NODUMP-NEXT: ** ScheduleDAGMILive::schedule picking next node
# NODUMP-NEXT: *** Final schedule for %bb.0 ***
# NODUMP-NEXT: SU(0): $x3 = ADDXrr $x0, $x0
# NODUMP-NEXT: SU(1): $x4 = ADDXrr $x1, $x1
# NODUMP-NEXT: SU(2): $x5 = ADDXrr $x2, $x2